将多个 QMainWindow 合二为一作为 QTabWidget 中的选项卡
Posted
技术标签:
【中文标题】将多个 QMainWindow 合二为一作为 QTabWidget 中的选项卡【英文标题】:Combine multiple QMainWindow into one as tabs in QTabWidget 【发布时间】:2014-03-24 13:57:39 【问题描述】:所以,我的项目被分成多个部分,每个部分独立工作。我和我的小组成员在单独的部分上工作,现在我想将它们全部组合成一个 QMainWindow
。目前我在每个QMainWindow
中都有菜单项,这使得从一个部分跳转到另一个部分成为可能..(通过关闭当前窗口并在同一个QApplication
中启动另一个窗口)
但我想更优雅地使用QTabWidget
,以便每个部分都有自己的选项卡。我如何实现这一目标?
(顺便说一句,我正在使用 QT Designer 来设计 UI)
我做了什么:
- 新建一个窗口,添加QTabWidget
,将之前QMainWindow
中的所有小部件拖放到单独的选项卡中。
从设计的角度来看,这非常有效。
但是我不知道如何组合他们的代码。它们位于从QMainWindow
继承的不同类中。
有没有办法,只能手动将所有关联的插槽和功能添加到新的主窗口中?
【问题讨论】:
【参考方案1】:由于每个部分都是一个QMainWindow,每个QMainWindow都可以放在一个tabWidget中。
假设 Portion_one_QMainWindow 派生自 QMainWindow。 我使用了一个工作代码,类似于以下代码:
QTabWidget *tabMaster = new QTabWidget;
Portion_one_QMainWindow *Portion_one = new Portion_one_MainWindow;
tabMaster.addTab(Portion_one, QIcon("images/portion_one.png"), "name_of_portion_one" );
为了构建您的“主启动器”,最大的努力是将代码从各个部分检索到一个公共位置。
【讨论】:
以上是关于将多个 QMainWindow 合二为一作为 QTabWidget 中的选项卡的主要内容,如果未能解决你的问题,请参考以下文章
QMainWindow +QGraphicsView 和多个 QGLWidget 的问题