你如何以编程方式更新Qt中的UI?

时间:2013-06-18 02:03:05

标签: c++ qt user-interface

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

3 个答案:

答案 0 :(得分:1)

要将窗口小部件添加到表单,您只需执行

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

QtDesigner使用XML作为创建,更新和保持GUI的一种手段,支持 visual 开发方法,但最终你可以完全构建你的应用程序

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

我建议您阅读的常规资源here然后(如果您仍然无法弄明白的话)提出一个具体问题,询问您究竟想要实现的目标。
LE:该链接包含3种将生成的代码用于C ++代码的方法,不要将它们全部用于您的工作项目,您可以选择一种方法或使用默认方法(ui成员指针)