c++ - UI 未在 QT 设计器中更新

标签 c++ qt qt-designer

最近我开始学习使用 C++ 开发 GUI 应用程序* 的 QT 框架。到目前为止,QT Creator 一切正常,但是当我尝试使用 CSS 样式表更改元素的背景颜色时,QT UI 设计器没有得到更新。此外,即使在编写代码时,QT 也不会检测到我在屏幕上新添加的控件。这是显示此问题的 GIF。

enter image description here

我也不确定这是否是 QT 的工作方式,但在表单上添加一个元素后,我无法立即在代码中通过其对象名称访问该元素,除非我再次构建它

Object name not accessible in code before building

这是我的 QT 详细信息

enter image description here

如果我在某处出错或犯了任何错误,请原谅我,我是 Visual Studio 专家,对使用 QT 还很陌生。

注意:我问的是第二个,因为我看过很多关于 QT 小部件的教程视频,其中添加对象后可以立即在代码中访问它。

也是我第一次使用它时,它确实有效。但从那以后设计师就没有得到更新

最佳答案

这很容易。我只需要将 border 属性更改为任何值,就可以立即看到更改。我猜是因为边界导致了问题。

这是一张动图,向您展示... enter image description here

关于 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 并在其中添加以下代码,如下图所示

makefile

第 2 步:将文件保存在项目的工作目录中。

enter image description here

第 3 步: 现在在 QT 中打开项目并单击左侧的项目选项卡。在 build settings->build step 下点击 add build step->make

enter image description here

现在用 ma​​ke 覆盖 jom.exe(确保 make 的位置存在于 PATH 环境变量中)并提供以下 make 参数

-f deleteUI_header.mk

enter image description here

现在,无论何时构建项目,生成的 ui 头文件都会自动删除。 `

关于c++ - UI 未在 QT 设计器中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56052094/

相关文章:

python - 从 ui 文件加载的 PySide2 QMainWindow 不触发窗口事件

c++ - 空闲期后 Redis PUBSUB 连接问题

c++ - 与宏同名的函数

c++ - BlackBerry 10 中的分段控制

c++ - 如何将焦点返回到窗口?

qt - QVBoxLayout : How to align widgets to the top using Qt designer

c++ - 在 VS2012 上禁用 C++11 功能

c++ - 这是为成员函数的 C++ 模板部分特化构造类的好方法吗?

c++ - QList 清除函数调用是否清除存储在 QList 中的动态分配对象的内存?

c++ - 如何在Qt中映射资源文件?