使用Qt独立窗口时应该使用什么:QDialog、QWindow还是QMainWindow?

3

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

2个回答

4

没有任何限制阻止您将它们用于任何用途。它们具有不同的角色和属性:

  • QMainWindow 就是一个主窗口。它有一个工具栏、停靠窗口、菜单栏、状态栏和一个中心窗口。如果您不需要这些东西中的大部分,那么您显然不需要 QMainWindow
  • QWindow 是一个基本对象,如果您不需要 QWidget 的功能,则非常有用。
  • QDialog 用于弹出窗口(即“对话框”),例如消息框或打开文件对话框。
  • QWidget 是基本窗口或窗口元素。如果不确定使用哪个,请使用它。

根据您的问题,似乎您希望每个窗口都是 QMainWindow。请注意,如果我是您,我仍然更喜欢使用仅包含所需部分的自定义 QWidget。添加状态栏和菜单并不需要太多代码。


1
多个主窗口不是问题。我在我的应用程序中也使用它们,它们工作得很好。您可以将主窗口分别设置(没有父级),或者依赖于某个主窗口,以便在关闭主主窗口时关闭它们。
当您的主窗口具有独立的生命和菜单、状态行等时,更需要多个主窗口,这些主窗口可能都不应该分配父级。
所以,是的,您的方法对我来说完全没问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接