1

我对 Qt 还很陌生,我正试图将我的头脑围绕在信号和插槽上。虽然我已经知道如何创建自定义插槽,但我还没有弄清楚如何从我的 C++ 代码更新 GUI。我意识到我在设计器中创建的整个 UI 只是用看似基于 XML 的 UI 代码编写的。我是否必须手写自己的 Qt C++ UI 才能更新界面,或者我可以以某种方式使用 C++ 来更新基于 XML 的 UI?我只是想在单击按钮时向主窗体添加一个小部件。任何帮助表示赞赏。谢谢!

4

3 回答 3

1

要将小部件添加到表单中,您只需执行以下操作

ui->layout()->addWidget(new Widget);

QtDesigner 使用 XML 作为创建、更新和持久化 GUI 的一种方式,支持可视化的开发方法,但最终您可以完全不用它来构建应用程序。

于 2013-06-18T06:12:10.673 回答
0

您不必更新 UI 的 xml。您可以使用 setupUi http://crpppc19.epfl.ch/doc/qt4-doc-html/html/qwidget.html#setupUi将 ui 继承到您自己的类中

现在在您的 C++ 类中,您可以更新小部件,例如更改标签文本、lineEdit 文本、使用 Signals & slot 设置 spinbox 值。

于 2013-06-18T06:34:22.607 回答
0

该 xml 由 Qt 设计器使用,而在设计器之外它仅由uic用作生成 C++ 代码的源,因此您在设计器中所做的一切最终都作为 C++ 代码,因此它可以在C++ 代码(您可以查看代码并看到您很可能有一个名为ui的成员,它很可能是一个指针,但它也可以是由 uic 为您生成的 C++ 类的实例,并且通过该 ui成员,您可以访问您在设计器中创建的小部件和布局)。

可以在此处找到我建议您阅读的通用资源,然后(如果您仍然无法弄清楚)询问有关您到底想要实现什么的具体问题。
LE:该链接包含 3 种将生成的代码用于 C++ 代码的方法,不要将它们全部尝试到您的工作项目中,您可以选择一种方法或使用默认方法(ui 成员指针)

于 2013-06-18T07:18:45.560 回答