QT GUI - >单个窗口中的多个视图

时间:2014-10-07 19:15:16

标签: qt user-interface

我正在为工业机器创建一个GUI,我希望有一个" main"窗口,显示一般状态信息,用户可以单击图标并让gui无缝切换到不同的视图。例如,主窗口上有一个警告图标,他们点击它,窗口就会转换为该子系统的详细状态页面。

我的问题是我还没有找到一种在QT中实现这一目标的好方法。我可以打开一个新窗口,但我不希望用户管理多个窗口,选项卡具有一些此功能,但我不希望用户必须单击/管理选项卡。我尝试了几个围绕隐藏/显示组件的选项,但事实上我无法在同一个窗口上定义多个布局,并且有一个理智的方式来管理和切换它们之间难以接受。

所以简而言之,我希望有一个没有标签的单个屏幕,充满图标/状态小部件,让用户能够点击一个小部件(例如,一个变为红色)和(来自用户)透视)所有主要小部件消失并被该子系统上的详细视图替换,然后当用户完成该视图时,他们可以快速转换回主状态页面。这有意义吗?

有关如何处理此事的任何建议?谢谢大家。

1 个答案:

答案 0 :(得分:3)

使用QStackedWidget

链接:http://qt-project.org/doc/qt-4.8/qstackedwidget.html

您可以使用addWidget ( QWidget * widget )方法放置不同的小部件。将其中一个按钮连接到相应的插槽,这将使用setCurrentIndex ( int index )方法更改小部件。

如果您使用QMainWindow子类,则可以将QStackedWidget设置为中央窗口小部件。

看看这张照片:

enter image description here

每个窗口小部件(1,2,3,...)都可以与其他子窗口小部件一起布局(例如,用于显示不同的数据),并且可以添加到QStackedWidget。在此之后,您应该只setCurrentIndex显示其中一个小部件。