Qt 调用另一个 UI

Posted

技术标签:

【中文标题】Qt 调用另一个 UI【英文标题】:Qt Calling Another Ui 【发布时间】:2013-02-17 03:45:15 【问题描述】:

我在我的项目中使用 Qt Designer 创建了 2 个 *.ui,其中一个是主屏幕,另一个是对话框小部件。对话框小部件由主屏幕中的功能之一调用。

如何连接主窗口中的函数来调用对话框小部件?

例如如果我在主窗口的菜单中单击 [关于 > 作者],我应该能够调用对话框小部件。

任何帮助将不胜感激。

谢谢。

【问题讨论】:

【参考方案1】:

这取决于您保存对话框指针的位置。例如,您可以在主窗口上创建一些信号并将其与对话框 show() 插槽(或 exec() 如果您需要它是模态的)连接。 或者,如果您将对话框指针保留在主窗口中,则可以直接将其与 show/exec 方法一起使用。

关于 About->Author 菜单:为此,您应该创建 QAction 并将其添加到菜单中。并且 QAction 有 trigger() 信号,您可以连接到对话框的 exec/show 槽。

【讨论】:

感谢您的回复。我很困惑,因为 .ui 文件生成了这个“ui_xxx.h”,还有“xxx.h”和“xxx.cpp”。我应该在哪里声明我的 Dialog Widget show() 插槽?我在哪里声明我的主窗口 signal() 以连接到这个 Dialog Widget slot()? QDialog 已经有 show/exec 槽,所以你不需要声明它们。如果您需要在 Main WIndow 上声明信号,您应该在实现 ui 的 MainWindow 类上执行此操作(我不知道它是如何在您这边完成的,但我猜它是通过 setupUi 完成的)并从您生成的 UI 继承类。

以上是关于Qt 调用另一个 UI的主要内容,如果未能解决你的问题,请参考以下文章

来自另一个类的 Qt c++ GUI 调用

Qt ui界面调用问题

当 MainWindow 从另一个类(不在主函数中)启动时,QT ui 未显示

为啥我的 pyqt 信号错误会冻结 ui,直到调用另一个 python 函数

在Qt中同一个程序中,两个界面如何连接,点一下按钮,另一个界面弹出来,哪里的程序写在哪里。怎么调用。

qt两个窗口切换怎么连续性