QWidget、QDialog、QMainWindow的异同点

举报
咚咚隆地咚 发表于 2022/09/23 13:48:38 2022/09/23
【摘要】 在qt使用过程中,我们可以在创建项目的时候发现,它有以下三个选择QWidget QDialog QMainWindow 在使用过程中,他们没有特别大的区别,今天来讲讲散着的差异。通过这个顺序可以发现,QWidget是老大,其他两个是他的小弟。其实QWidget是QDialog和QMainWindow的父,所以QDialog和QMainWindow其实是一对兄弟关系。他们俩拥有同一个父亲。 Q...

在qt使用过程中,我们可以在创建项目的时候发现,它有以下三个选择QWidget QDialog QMainWindow 在使用过程中,他们没有特别大的区别,今天来讲讲散着的差异。

通过这个顺序可以发现,QWidget是老大,其他两个是他的小弟。其实QWidget是QDialog和QMainWindow的父,所以QDialog和QMainWindow其实是一对兄弟关系。他们俩拥有同一个父亲。

QWidget

在上面就有提到,QWidget是其他两种类的福清,由此可得他是 QWidget类是全部界面对象的基类。

这个类他具有许多的功能, 它可以从窗口系统接收鼠标、键盘和其它事件并可以对他们进行重写操作,可以根据我们的需求来改变他。每个窗口部件就像是我们所用的XY轴,我们可以在指定的位置设置指定的控件。并且在使用过程中,他的孩子窗口可以覆盖于自己的窗口之上。

QDialog

QDialog类主要应用于对话框中,他是对话框窗口的基类。同时他也有另外一个名字:模态。他与其他两个类不同于它具有阻塞点作用。如果调出了这个窗口,那他必是全屏的老大,只能操作他,不能操作别人。由此可见,他最好是用在短时间内需要进行通讯的窗口。但是QWidget也可以设置为阻塞状态,但是一般会用的过程中,最好使用QDialog。

QMainWindow

在创建好QMainWindow类,在ui界面就可以清楚地看到他与别人的不同,他提供了一个有菜单栏、工具栏、状态条的主应用程序窗口。类似于我们电脑上的文件资源管理器,可以通过设置上面的菜单栏、工具栏等等,他的用法类似于按钮,但是他可以分为多级使用。并且它具有固定的位置。

各个类的最佳适用场合:

若是作为嵌套,在其他的窗口之中或之上使用,推荐使用QWidget。

若是作为主窗体使用,推荐使用QMainWindow。

若是需要他霸屏,除了他不可以在别的界面上做操作,推荐使用QDialog。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。