2008-11-25 255 views
19

QMainWindow是Qt应用程序的主窗口。所以通常你只有一个,但是有可能在你的应用程序中有多个QMainWindow实例?多个QMainWindow实例?

我在基于Qt的GUI应用程序集成到另一个基于Qt的GUI应用程序一个工作。这两个应用程序都有一个QMainWindow,我正在考虑作为第一步创建一个新的QMainWindow,它在选项卡上都有旧的QMainWindows。这样就可以让我专注于将GUI B的后端连接到A的后端,而不必在用户界面本身中改变任何内容。这是一种可行的方法,还是您有其他建议?

+0

我处于一个非常相似的情况,我需要2个QMainWindows。如果你已经走了这条路线,你有没有回答@ caleb-huitt-cjhuitt指出的警告,Mac上的菜单栏会发生什么情况? – 2011-08-05 05:25:30

回答

28

根据需要,您可以拥有尽可能多的QMainWindow实例。 A QMainWindow只是一个QWidget,它提供了一个菜单栏,工具栏,状态栏和对接框架。但基本上它只是一个QWidget,所以你可以拥有尽可能多的你喜欢的。

通常,由于GUI设计原因,您只有一个QMainWindow,因为它可能会令人困惑,因为它具有多个主窗口。但是,在实现可以打开自己的新实例的应用程序QtAssistant时,该过程有多个主窗口。

你的建议应该工作。带有选项卡的窗口不需要为QMainWindow,除非您还想要将工具栏添加到该窗口。

+2

我唯一需要注意的是,如果你要移植到OS X,菜单可能会变得有点时髦。他们有一些特殊的操作让菜单在屏幕顶部工作,我不知道如何这将在一个实际窗口中与两个主窗口一起工作。 – 2008-11-26 15:49:07