QT中QWidget、QDialog及QMainWindow的区别

来源:互联网 发布:广州淘宝美工培训学校 编辑:程序博客网 时间:2024/06/07 02:23

恩恩,最近正在学习QT,刚忙完linux C的聊天室,自己写的很长一段时间

,终于完成了,虽然用到的没多少知识,但是算是把《linux C程序设计大全》

看完了,虽然看的时间有点长,看了两个多月......嘿嘿

好了言归正传,再啰嗦就要挨打了

  


 QWidget类是所有用户界面对象的基类。 窗口部件是用


户界面的一个基本单元:它从窗口系统接收鼠标、键盘


和其它事件,并且在屏幕上绘制自己。每一个窗口部件


都是矩形的,并且它们按Z轴顺序排列。一个窗口部件可


以被它的父窗口部件或者它前面的窗口部件盖住一部分


。 


    QMainWindow 类提供一个有菜单条、锚接窗口(例


如工具条)和一个状态条的主应用程序窗口。主窗口通


常用在提供一个大的中央窗口部件(例如文本编辑或者


绘制画布)以及周围 菜单、工具条和一个状态条。


QMainWindow常常被继承,因为这使得封装中央部件、


菜单和工具条以及窗口状态条变得更容易,当用户点击


菜单项或者工具条按钮时,槽会被调用。


    QDialog类是对话框窗口的基类。对话框窗口是主


要用于短期任务以及和用户进行简要通讯的顶级窗口。


QDialog可以是模态对话框也可以是非模态对话框。


QDialog支持扩展性并且可以提供返回值。它们可以有默


认按钮。QDialog也可以有一个QSizeGrip在它的右下角


,使用setSizeGripEnabled()。 


    QDialog 是最普通的顶级窗口。一个不会被嵌入到


父窗口部件的窗口部件叫做顶级窗口部件。通常情况下


,顶级窗口部件是有框架和标题栏的窗口(尽管使用了


一定的窗口部件标记,创建顶级窗口部件时也可能没有


这些装饰。)在Qt中,QMainWindow和不同的QDialog的


子类是最普通的顶级窗口。


    如果是顶级对话框,那就基于QDialog创建,如果


是主窗体,那就基于QMainWindow,如果不确定,或者


有可能作为顶级窗体,或有可能嵌入到其他窗体中,则


基于QWidget创建。
    当然了,实际中,你还可以基于任何其他部件类来


派生。看实际需求了,比如QFrame、QStackedWidget等


等。

0 0