如何关闭在提升的小部件中单击的按钮上的 qt 小部件 ui?
Posted
技术标签:
【中文标题】如何关闭在提升的小部件中单击的按钮上的 qt 小部件 ui?【英文标题】:How to close the qt widget ui on a button clicked in promoted widget? 【发布时间】:2013-11-25 12:25:08 【问题描述】:我有一个 qt 设计器 ui 表单,表单底部有一个 qwidget
。 qwidget
有一个提升的小部件。
提升的小部件有许多标签和按钮。其中一个按钮是主页按钮。单击此按钮后,用户需要关闭表单并打开主表单。
如果我使用实现 clicked() 槽的传统方法并说this->close();
,则只有提升的小部件将被关闭。
我希望关闭整个 ui,然后打开 Home 表单。我该怎么做?是否从提升的小部件调用 qt 设计器 ui 表单以指示单击主页按钮?
感谢任何帮助。谢谢
【问题讨论】:
【参考方案1】:您需要将SIGNAL
添加到您的班级(假设命名为close()
),然后每当按下按钮时,此信号就会熄灭,并且通过将您的班级连接到此信号,您可以将表单设置为关闭。
Here 你可以找到关于信号的基本教程。如果您将代码放在问题中,我也可以指导您完成代码。
【讨论】:
好吧.. 这些是提升的小部件。它是用户界面的一部分。所以传统的发出信号并在主 ui 插槽中连接是行不通的。我之前确实尝试过。在按钮上单击我写了发出 this->home() 并在主 ui 中我将此类的信号连接到我指示 this->close() 的插槽 gotoHome();它不起作用。 我使用该对象作为提升小部件的基类,然后从那里获取信号 home()。这行得通。早些时候,我已经实例化了提升的小部件类并尝试连接发出的信号。我没有意识到主 ui 表单中的基类 qwidget 是实际对象。谢谢你的帮忙。 :) @DmitrySazonov 问题解决了。我应该发布解决方案吗?和示例代码一样? @Giz :很抱歉我没有在线回答你的第一个问题。没问题:)以上是关于如何关闭在提升的小部件中单击的按钮上的 qt 小部件 ui?的主要内容,如果未能解决你的问题,请参考以下文章