如何在Qt中编程更新UI ?

How do you programatically update the UI in Qt?

本文关键字:更新 UI 编程 Qt      更新时间:2023-10-16

我是相当新的Qt,我试图把我的头围绕信号和插槽。虽然我已经弄清楚了如何创建自定义槽,但我还没有弄清楚如何从我的c++代码更新GUI。我意识到,我在设计器中创建的整个UI只是用看似基于XML的UI代码编写的。为了更新界面,我必须手写自己的Qt c++ UI吗?或者我可以用c++来更新基于XML的UI吗?我只是想添加一个小部件,以一个按钮单击的主要形式。任何帮助都是感激的。谢谢!

要在表单中添加小部件,只需执行

ui->layout()->addWidget(new Widget);
QtDesigner使用

XML作为创建、更新和持久化GUI的手段,支持可视化方法进行开发,但最终您可以完全不使用来构建应用程序

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

现在在你的c++类中,你可以更新小部件,如改变标签文本,lineEdit文本,设置spinbox值使用信号&槽。

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

我建议你在这里找到一个通用的资源,然后(如果你仍然不能弄清楚)问一个具体的问题,关于你到底想要实现什么。
LE:该链接包含3种方法,可以将生成的代码转换为c++代码,不要将所有方法都尝试到您的工作项目中,您可以选择一种方法或使用默认方法(ui成员指针)