qt 重新编译ui文件后,会将之前自动生成的ui_*.h文件中所修改的内容覆盖掉,如何解决?

u012412292 2017-03-16 05:03:54
原因:
由于完全利用代码绘制界面的效率比较低,而利用Qt Designer制作界面,效率虽然会提高,但是一些情况下界面的效果及交互不能很好的完整的支持,所以想利用Qt Designer绘制界面中的基础控件和布局,而一些特殊的效果和交互在制作出的ui文件所生成的ui_*.h文件上,再通过代码进行绘制实现。

问题:
由于ui文件自动生成的ui_*.h文件,会在下次编译ui文件的时候被覆盖,所以一旦有界面上的控件或布局的修改,编译ui文件后,之前所添加的代码就会丢失掉,因此想请教一下,有什么好的工作方法,可以解决这个问题?
...全文
2420 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
让他让 2020-10-19
  • 打赏
  • 举报
回复
改.ui文件,中间文件不需要修改
常人changr 2019-06-03
  • 打赏
  • 举报
回复
既然ui_*.h不能修改,那么你就不应该在该文件中添加东西; 我遇到过就是这种情况,对qt不是太熟悉导致的; 所以扎实的基础是很重要的~
渔火逗烟青 2018-04-12
  • 打赏
  • 举报
回复
你好,向你请教下你说的这个问题。目前遇到这个问题,不知道怎样去解决,开发环境是vs2010+qt5,希望你能给个方向,
Saleayas 2018-04-12
  • 打赏
  • 举报
回复
所以自动生成的文件都在代码中提示你不能修改的字样。 所以这些文件是不能被修改的。 如果你确实需要修改这些,使用头文件或则宏定义来修改。
u013211185 2017-07-24
  • 打赏
  • 举报
回复
楼主,你好。 可以使用继承的方法,避免被覆盖的问题。 基础UI通过绘制ui文件实现。自定义的方法以及个性需求,通过继承实现。 楼主如果是使用qt5的话,应该不会有这个问题。
trytry1992 2017-07-24
  • 打赏
  • 举报
回复
建议要添加控件在自己写的源文件里加,不要在ui文件里加
tang_wen_xi 2017-07-21
  • 打赏
  • 举报
回复
你是怎么解决的,能告诉我一下吗 ? 我也遇到了同样的问题,但是不知道如何解决
u012412292 2017-03-22
  • 打赏
  • 举报
回复
多谢各位的意见,是我对qt designer工作流程不熟悉的原因才导致问题的出现,现在已经熟悉了它的工作流程及使用方法,这个问题是不存在的。谢谢大家
u012412292 2017-03-17
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
搜“预生成事件 命令行”
您好,我如何利用预生成事件的机制来解决qt designer中ui_*.h文件被覆盖的这个问题呢?
fxbszj 2017-03-17
  • 打赏
  • 举报
回复
不管你想做什么,都不应该去改ui_*.h,因为它是根据ui文件自动生成的。 例如你有MainWindow的设计类, 会有3个文件MainWindow.h MainWindow.cpp MainWindow.ui 如果你想用代码改写什么,应该去MainWindow.cpp
赵4老师 2017-03-17
  • 打赏
  • 举报
回复
引用 3 楼 u012412292 的回复:
[quote=引用 1 楼 zhao4zhong1 的回复:] 搜“预生成事件 命令行”
您好,我如何利用预生成事件的机制来解决qt designer中ui_*.h文件被覆盖的这个问题呢?[/quote] 你在“预生成事件 命令行”中填写你的批处理或自编代码生成的exe程序,可以根据命令行参数拷贝或更名或合并旧ui_*.h文件到新ui_*.h文件中。
灌水号 2017-03-16
  • 打赏
  • 举报
回复
ui.h一般不需要修改吧...好吧,我没改过.
赵4老师 2017-03-16
  • 打赏
  • 举报
回复
搜“预生成事件 命令行”

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧