将多个 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 的问题

多个 QWidet 到一个 QMainWindow

QT_4-QMainWindow

QT开发(二十二)——QMainWindow主窗口

Qt:为啥在 QMainWindow 中添加状态栏会影响大小调整?

Qt中的主窗口之菜单栏