由于完全利用代码绘制界面的效率比较低,而利用Qt Designer制作界面,效率虽然会提高,但是一些情况下界面的效果及交互不能很好的完整的支持,所以想利用Qt Designer绘制界面中的基础控件和布局,而一些特殊的效果和交互在制作出的ui文件所生成的ui_*.h文件上,再通过代码进行绘制实现。
问题:
由于ui文件自动生成的ui_*.h文件,会在下次编译ui文件的时候被覆盖,所以一旦有界面上的控件或布局的修改,编译ui文件后,之前所添加的代码就会丢失掉,因此想请教一下,有什么好的工作方法,可以解决这个问题?
9 个解决方案
#1
搜“预生成事件 命令行”
#2
ui.h一般不需要修改吧...好吧,我没改过.
#3
您好,我如何利用预生成事件的机制来解决qt designer中ui_*.h文件被覆盖的这个问题呢?
#4
你在“预生成事件 命令行”中填写你的批处理或自编代码生成的exe程序,可以根据命令行参数拷贝或更名或合并旧ui_*.h文件到新ui_*.h文件中。
#5
不管你想做什么,都不应该去改ui_*.h,因为它是根据ui文件自动生成的。
例如你有MainWindow的设计类, 会有3个文件MainWindow.h MainWindow.cpp MainWindow.ui
如果你想用代码改写什么,应该去MainWindow.cpp
例如你有MainWindow的设计类, 会有3个文件MainWindow.h MainWindow.cpp MainWindow.ui
如果你想用代码改写什么,应该去MainWindow.cpp
#6
多谢各位的意见,是我对qt designer工作流程不熟悉的原因才导致问题的出现,现在已经熟悉了它的工作流程及使用方法,这个问题是不存在的。谢谢大家
#7
你是怎么解决的,能告诉我一下吗 ? 我也遇到了同样的问题,但是不知道如何解决
#8
楼主,你好。
可以使用继承的方法,避免被覆盖的问题。
基础UI通过绘制ui文件实现。自定义的方法以及个性需求,通过继承实现。
楼主如果是使用qt5的话,应该不会有这个问题。
可以使用继承的方法,避免被覆盖的问题。
基础UI通过绘制ui文件实现。自定义的方法以及个性需求,通过继承实现。
楼主如果是使用qt5的话,应该不会有这个问题。
#9
建议要添加控件在自己写的源文件里加,不要在ui文件里加
#1
搜“预生成事件 命令行”
#2
ui.h一般不需要修改吧...好吧,我没改过.
#3
搜“预生成事件 命令行”
您好,我如何利用预生成事件的机制来解决qt designer中ui_*.h文件被覆盖的这个问题呢?
#4
搜“预生成事件 命令行”
您好,我如何利用预生成事件的机制来解决qt designer中ui_*.h文件被覆盖的这个问题呢?
你在“预生成事件 命令行”中填写你的批处理或自编代码生成的exe程序,可以根据命令行参数拷贝或更名或合并旧ui_*.h文件到新ui_*.h文件中。
#5
不管你想做什么,都不应该去改ui_*.h,因为它是根据ui文件自动生成的。
例如你有MainWindow的设计类, 会有3个文件MainWindow.h MainWindow.cpp MainWindow.ui
如果你想用代码改写什么,应该去MainWindow.cpp
例如你有MainWindow的设计类, 会有3个文件MainWindow.h MainWindow.cpp MainWindow.ui
如果你想用代码改写什么,应该去MainWindow.cpp
#6
多谢各位的意见,是我对qt designer工作流程不熟悉的原因才导致问题的出现,现在已经熟悉了它的工作流程及使用方法,这个问题是不存在的。谢谢大家
#7
你是怎么解决的,能告诉我一下吗 ? 我也遇到了同样的问题,但是不知道如何解决
#8
楼主,你好。
可以使用继承的方法,避免被覆盖的问题。
基础UI通过绘制ui文件实现。自定义的方法以及个性需求,通过继承实现。
楼主如果是使用qt5的话,应该不会有这个问题。
可以使用继承的方法,避免被覆盖的问题。
基础UI通过绘制ui文件实现。自定义的方法以及个性需求,通过继承实现。
楼主如果是使用qt5的话,应该不会有这个问题。
#9
建议要添加控件在自己写的源文件里加,不要在ui文件里加