Qt用于独立窗口的用途:QDialog,QWindow还是QMainWindow?

时间:2016-02-18 12:54:05

标签: qt qwidget qmainwindow

我正在使用Qt迈出第一步。作为练习,我正在为多核处理器编写GUI,并且单独的核心显示在单独的窗口中。从这个窗口,可能有几个副本,它们具有独立的生命,包括菜单,状态行等。也就是说,它们基本上就像一个QMainWindow,但有一个QMoreMainWindow :)。如果我多次使用QMainWindow,可能会产生任何副作用吗?

2 个答案:

答案 0 :(得分:2)

没有什么可以阻止你使用它们中的任何东西。他们确实有不同的角色和属性:

  • QMainWindow就是这样:一个主窗口。它有一个工具栏,dockwidgets,一个菜单栏,一个状态栏和一个中央小部件。如果你不需要所有(大部分)这些东西,你显然不想要QMainWindow
  • QWindow是一个准系统对象,如果您不想要/需要QWidget的功能,这个对象非常有用。
  • QDialog用于弹出窗口(即"对话框"),如消息框或打开文件对话框。
  • QWidget是基本窗口或窗口元素。如有疑问,请使用此功能。

阅读您的问题,您似乎希望每个窗口都是QMainWindow。注意我仍然更喜欢自定义QWidget,如果我是你,我只需要我需要的部分。添加状态栏和菜单不是那么多代码。

答案 1 :(得分:1)

多个主窗口完全没问题。我也在我的应用程序中使用它们,它们工作正常。您可以单独使用主窗口(没有父窗口)或依赖于某个主窗口,以便在主窗口关闭时关闭它们。

当你的主窗口具有独立的生活和菜单,状态行等时,这对于多个主窗口来说更是如此,这些主窗口可能都没有分配父窗口。

所以,是的,你的方法对我来说似乎完全没问题。