如何在升级小部件中单击的按钮上关闭qt小部件ui?

如何在升级小部件中单击的按钮上关闭qt小部件ui?,qt,qwidget,qt-designer,qtgui,Qt,Qwidget,Qt Designer,Qtgui,我有一个qt设计器ui表单,表单底部有一个qwidget。qwidget有一个升级的小部件 升级的小部件有许多标签和按钮。其中一个按钮是“主页”按钮。单击此按钮,用户需要关闭表单并打开主表单 如果我使用传统的方法实现clicked()slot并说this->close(),将仅关闭升级的小部件 我希望关闭整个ui,然后打开主窗体。我该怎么做呢?是否从升级的小部件调用qt designer ui表单以指示单击了home按钮 感谢您的帮助。谢谢你你需要给你的类添加一个信号(比方说名为close())

我有一个qt设计器ui表单,表单底部有一个
qwidget
qwidget
有一个升级的小部件

升级的小部件有许多标签和按钮。其中一个按钮是“主页”按钮。单击此按钮,用户需要关闭表单并打开主表单

如果我使用传统的方法实现clicked()slot并说
this->close(),将仅关闭升级的小部件

我希望关闭整个ui,然后打开主窗体。我该怎么做呢?是否从升级的小部件调用qt designer ui表单以指示单击了home按钮


感谢您的帮助。谢谢你

你需要给你的类添加一个
信号
(比方说名为
close()
),然后每当按下按钮,这个信号就会熄灭,通过将你的类连接到这个信号,你可以设置窗体关闭。
您可以找到有关信号的基本教程。如果你把你的代码放在问题中,我也可以引导你完成代码。

好的。。这些是升级的小部件。它是ui的一部分。因此,传统的发射信号和主ui插槽中的连接不起作用。我之前确实试过了。在单击按钮时,我编写了emit this->home(),在主ui中,我将这个类的信号连接到插槽gotoHome(),在那里我指示了这个->close();它不起作用。我使用对象作为升级小部件的基类,然后从中获取信号home()。这起作用了。早些时候,我实例化了提升的widget类,并尝试连接发出的信号。我没有意识到主ui表单中的基类qwidget是实际的对象。谢谢你的帮助。:)@德米特里萨佐诺夫:问题解决了。我应该发布解决方案吗?如示例代码所示?@Giz:很抱歉,我没有在线回答您的第一个问题。没问题:)