QMainWindow和QWidget的区别

QMainWindow中在setUi时自动为用户创建了一个菜单栏、工具栏、中心窗口和状态栏。而QWidget是没有这几点的。

QWidget运行后就只有一个“页面”,而QMainWindow运行后生成了一个“窗口”。

从外到内依次是菜单栏、状态栏、工具栏、停靠窗口、中心窗口。 查看帮助文档可以发现,setMenuBar、addToolBar、setCentralWidget、setStatusBar几种行为只有QMainWindow类具有。 因此,在继承自QWidget类的用户类中无法创建菜单栏等几种行为。 这就是QMainWindow和QWidget的主要区别。

什么时候用什么

窗口类型介绍:QMainWindow、QWidget、QDialog三个类都可以用来创建窗口,可以直接使用,也可以继承后使用。

  QMainWindow窗口包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,也可以说是GUI程序的主窗口。

  QDialog是对话框窗口的基类。对话框主要用来执行短期任务,或者与用户进行互动,它可以是模态的,也可以是非模态的。他没有菜单栏、工具栏、状态栏等。

  如果是主窗口,就使用QMainWindow类;

  如果是对话框,就使用QDialog类;

  如果不确定,有可能作为顶层窗口,也有可能嵌入到其他窗口,就使用QWidget类。

发布了187 篇原创文章 · 获赞 45 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/wltsysterm/article/details/104471900