独立 windows 与 Qt 一起使用什么:QDialog、QWindow 或 QMainWindow?
What to use with Qt for independent windows: a QDialog, a QWindow or a QMainWindow?
我正在迈出 Qt 的第一步。作为练习,我正在为多核处理器编写 GUI,各个内核显示在单独的 window 中。从这个window来看,可能有几个副本,有独立的生命,包括菜单,状态行等。也就是说,它们本质上像一个QMainWindow,但是有一个QMoreMainWindow :)。多次使用 QMainWindow 会不会有副作用?
multiple main windows 完全没有问题。我也在我的应用程序中使用它们并且它们工作正常。您可以单独拥有主 windows(无父级)或依赖于某个主主窗口,以便在主主窗口关闭时关闭它们。
当您的主要 windows 拥有独立的生活和菜单、状态行等时,这对于多个主要 windows 来说更是如此,它们可能都应该没有分配父项。
所以,是的,你的方法对我来说非常好。
没有什么能阻止您将它们中的任何一个用于任何事情。他们确实有不同的角色和属性:
QMainWindow
就是:一个主要的 window。它有一个工具栏、dockwidgets、一个菜单栏、一个状态栏和一个中央小部件。如果您不需要所有(大部分)这些东西,您显然不需要 QMainWindow
.
QWindow
是一个准系统对象,如果您不使用 want/need QWidget
的功能,它会很有用。
QDialog
用于弹出 windows(即 "dialogs"),例如消息框或打开文件对话框。
QWidget
是基本的 window 或 window 元素。如有疑问,请使用它。
阅读您的问题,您似乎希望每个 windows 都是 QMainWindow
。请注意,如果我是您,我仍然更喜欢自定义 QWidget
,其中只有我需要的部分。添加状态栏和菜单并不需要太多代码。
我正在迈出 Qt 的第一步。作为练习,我正在为多核处理器编写 GUI,各个内核显示在单独的 window 中。从这个window来看,可能有几个副本,有独立的生命,包括菜单,状态行等。也就是说,它们本质上像一个QMainWindow,但是有一个QMoreMainWindow :)。多次使用 QMainWindow 会不会有副作用?
multiple main windows 完全没有问题。我也在我的应用程序中使用它们并且它们工作正常。您可以单独拥有主 windows(无父级)或依赖于某个主主窗口,以便在主主窗口关闭时关闭它们。
当您的主要 windows 拥有独立的生活和菜单、状态行等时,这对于多个主要 windows 来说更是如此,它们可能都应该没有分配父项。
所以,是的,你的方法对我来说非常好。
没有什么能阻止您将它们中的任何一个用于任何事情。他们确实有不同的角色和属性:
QMainWindow
就是:一个主要的 window。它有一个工具栏、dockwidgets、一个菜单栏、一个状态栏和一个中央小部件。如果您不需要所有(大部分)这些东西,您显然不需要QMainWindow
.QWindow
是一个准系统对象,如果您不使用 want/needQWidget
的功能,它会很有用。QDialog
用于弹出 windows(即 "dialogs"),例如消息框或打开文件对话框。QWidget
是基本的 window 或 window 元素。如有疑问,请使用它。
阅读您的问题,您似乎希望每个 windows 都是 QMainWindow
。请注意,如果我是您,我仍然更喜欢自定义 QWidget
,其中只有我需要的部分。添加状态栏和菜单并不需要太多代码。