博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】QT中QWidget、QDialog及QMainWindow的区别
阅读量:6150 次
发布时间:2019-06-21

本文共 803 字,大约阅读时间需要 2 分钟。

QWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的,并且它们按Z轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。 

    QMainWindow 类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。主窗口通常用在提供一个大的中央窗口部件(例如文本编辑或者绘制画布)以及周围 菜单、工具条和一个状态条。QMainWindow常常被继承,因为这使得封装中央部件、菜单和工具条以及窗口状态条变得更容易,当用户点击菜单项或者工具条按钮时,槽会被调用。
    QDialog类是对话框窗口的基类。对话框窗口是主要用于短期任务以及和用户进行简要通讯的顶级窗口。QDialog可以是模态对话框也可以是非模态对话框。QDialog支持扩展性并且可以提供返回值。它们可以有默认按钮。QDialog也可以有一个QSizeGrip在它的右下角,使用setSizeGripEnabled()。 
    QDialog 是最普通的顶级窗口。一个不会被嵌入到父窗口部件的窗口部件叫做顶级窗口部件。通常情况下,顶级窗口部件是有框架和标题栏的窗口(尽管使用了一定的窗口部件标记,创建顶级窗口部件时也可能没有这些装饰。)在Qt中,QMainWindow和不同的QDialog的子类是最普通的顶级窗口。
    如果是顶级对话框,那就基于QDialog创建,如果是主窗体,那就基于QMainWindow,如果不确定,或者有可能作为顶级窗体,或有可能嵌入到其他窗体中,则基于QWidget创建。
    当然了,实际中,你还可以基于任何其他部件类来派生。看实际需求了,比如QFrame、QStackedWidget等等。

转载于:https://www.cnblogs.com/tiandsp/p/7580569.html

你可能感兴趣的文章
LeetCode 21. 合并两个有序链表(Python)
查看>>
Oracle中INSTR、SUBSTR和NVL的用法
查看>>
linux每日命令(13):more命令
查看>>
事物和锁
查看>>
LeetCode 2. Add Two Numbers
查看>>
linux下的时区修改
查看>>
【UXPA工作坊小记】郎学明:做更“有用”的用户研究
查看>>
字符串查找替换
查看>>
【BZOJ3196】【Luogu P3380】 【模板】二逼平衡树(树套树)
查看>>
题解 P1537 【弹珠】
查看>>
容斥原理
查看>>
php中浮点数计算问题
查看>>
mysql中char与varchar的区别分析
查看>>
类方法及类的特殊方法
查看>>
visual tudio 2017--发布
查看>>
(Summary)Developer Tools:IE9的F12,Chrome的Ctrl+Shift+J比较
查看>>
对Java ConcurrentHashMap的一些了解
查看>>
【数据结构】常见排序算法复杂度
查看>>
数据可视化-EChart2.0使用总结2
查看>>
Lubuntu下配置Python开发环境
查看>>