QT中窗口部件及窗口类型

--事物的难度远远低于对事物的恐惧!  

    在所有的图形界面中,都是由窗口和窗口组件构成的,在QT中头文件包含窗口组件,对应Qt中的GUI模块,并且Qt中以组件对象的方式构建图形用户界面。
    在Qt中的组件 类型可分为下边两种:
          - 容器类(父组件) :用于包含其他的界面组件
          -功能类(子组件) :用于 实现特定的交互功能

    Qt中没有父组件的顶级组件叫做窗口
QT中窗口部件及窗口类型_第1张图片
    在Qt中,所有的组件类都继承于QWidget类,而QWidget类继承自QObject类和QPaintDevice
        -QObject是所有支持Qt对象模型的基类
        -QPaintDevice是Qt中所有可绘制组件的基类 
QT中窗口部件及窗口类型_第2张图片
重点来看下QWidget类
    -QWidget是Qt中所有窗口组件类的父类
    -QWidget是所有窗口组件的抽象
    -Qt中的每个窗口组件都是一个QWidget
    -QWidget类对象常作为父组件顶级组件使用

下边来看下下代码

#include 

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);

	QWidget w;
	w.setWindowTitle("This is a first UI");
	w.show();

	return a.exec();
}

编译运行:
QT中窗口部件及窗口类型_第3张图片
这只是一个很简单的例子,因为代码中的w对象没有父组件,那w就是父组件,拥有窗口的最大、最小、关闭等功能按钮,并且可以通过SetWindowTitle()成员函数设置窗口的标题等等,这里要提示的一点是,后边的QT学习,QtCreate开发环境里的帮助文档必不可少,里边几乎包含了我们想要知道的所有关于Qt的方方面面,例如想要了解QWidget类,在帮助页面查找框输入QWidget,就能找到所有关于QWidget类相关的内容。
QT中窗口部件及窗口类型_第4张图片
上边对窗口组件有了个简单的认识,那么下边我们来看一个常用的QT组件QLabel
    -QLabel 常用于显示一个提示性的字符串
    -QLabel是功能性组件,一般需要父组件作为容器(也可以作为窗口存在,但没什么意义)

#include 
#include 

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);

	QWidget w;
	w.setWindowTitle("This is a first UI");

	QLabel label(&w); //设置父类为w
	label.setText("This is a QLabel");

	w.show();

	return a.exec();
}

编译运行,可以看到窗口内部包含了一个QLabel组件,QT开发的界面中就是一个父组件包含各种各样的功能组件:
QT中窗口部件及窗口类型_第5张图片

下边来看看Qt中的窗口类型
QT中窗口部件及窗口类型_第6张图片
 

#include 
#include 

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);

	QWidget w(NULL, Qt::Dialog | Qt::WindowStaysOnTopHint);	//设置窗口类型为对话框类型、始终位于顶层位置
	w.setWindowTitle("This is a first UI");

	QLabel label(&w); //设置父类为w
	label.setText("This is a QLabel");

	w.show();

	return a.exec();
}

编译运行,可以看到,此时的窗口,右上角与上一个我们生成的窗口不一样,并且窗口始终位于最顶层,这就是加了Qt::Dialog属性及Qt::WindowStaysOnTopHint属性的的原因,还有其他的属性,大家可以自行查阅帮助文档去实验。
QT中窗口部件及窗口类型_第7张图片

总结
    -Qt以组件对象的方式构建图形用户界面
    -QWidget类是所有用户界面组件的父类
    -QWidget类对象常作为父组件顶级组件使用
    -Qt中可以根据 需要定制窗口样式
    -QLabel用于显示一个提示性字符串

你可能感兴趣的:(QT浅析)