最近,我开始学习用于在C ++中开发GUI应用程序*的QT框架。到现在为止,QT创建者的一切都很好,但是当我尝试使用CSS样式表更改元素的背景颜色时,QT UI设计器不会得到更新。而且,即使在编写代码时,QT也不会在屏幕上检测到我新添加的控件。这是显示此问题的GIF。
我也不知道QT是否能正常工作,但是在表单上添加元素后,除非再次构建它,否则无法立即通过代码中的对象名称访问该元素
这是我的QT详细信息
如果我在某个地方出错或犯了任何错误,请原谅我,我是Visual Studio,并且在使用QT方面很新。
注意:我之所以问第二个问题,是因为我在QT小部件上看到了很多教程视频,添加后可以在代码中立即访问该对象。
也是我第一次使用它时,它确实起作用了。但是从那以后设计者就没有更新
答案 0 :(得分:1)
这非常容易。我只需要将border属性更改为任何值,就可以立即看到更改。我猜这是因为边界造成的。
关于mainwindow.ui与ui_mainwindow.h文件不匹配的问题,解决方案非常简单,构建目录和工作目录都包含一个名为ui_mainwindow.h的文件。删除工作目录中的一个文件并进行宾果游戏。
感谢此QT论坛的帖子 [Solved] What would cause a mainwindow.ui file not to match with it ui_mainwindow.h file?
注意:无论何时构建或运行项目,都会再次生成ui _ *。h文件,使您一次又一次删除文件。一种解决方案是在构建项目后在工作目录中添加一个makefile,该文件会自动删除ui _ *。h文件(构建步骤后)。这是它的步骤。
第1步::创建一个名为 deleteUI_header.mk 的makefile,并向其添加以下代码,如下图所示
步骤2:将文件保存在项目的工作目录中。
步骤3:现在,在QT中打开项目,然后单击左侧的项目标签。在构建设置->构建步骤下,点击添加构建步骤->制作
现在使用 make (确保make的位置位于PATH环境变量中)覆盖 jom.exe ,并提供以下make参数
-f deleteUI_header.mk
现在,无论何时构建项目,生成的ui头文件都会被自动删除。 `