QT中窗口部件及窗口类型

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

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

    Qt中没有父组件的顶级组件叫做窗口

    在Qt中,所有的组件类都继承于QWidget类,而QWidget类继承自QObject类和QPaintDevice
        -QObject是所有支持Qt对象模型的基类
        -QPaintDevice是Qt中所有可绘制组件的基类 

重点来看下QWidget类
    -QWidget是Qt中所有窗口组件类的父类
    -QWidget是所有窗口组件的抽象
    -Qt中的每个窗口组件都是一个QWidget
    -QWidget类对象常作为父组件顶级组件使用

下边来看下下代码

#include <QtWidgets/QApplication>

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

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

	return a.exec();
}

编译运行:

这只是一个很简单的例子,因为代码中的w对象没有父组件,那w就是父组件,拥有窗口的最大、最小、关闭等功能按钮,并且可以通过SetWindowTitle()成员函数设置窗口的标题等等,这里要提示的一点是,后边的QT学习,QtCreate开发环境里的帮助文档必不可少,里边几乎包含了我们想要知道的所有关于Qt的方方面面,例如想要了解QWidget类,在帮助页面查找框输入QWidget,就能找到所有关于QWidget类相关的内容。

上边对窗口组件有了个简单的认识,那么下边我们来看一个常用的QT组件QLabel
    -QLabel 常用于显示一个提示性的字符串
    -QLabel是功能性组件,一般需要父组件作为容器(也可以作为窗口存在,但没什么意义)

#include <QtWidgets/QApplication>
#include <QLabel>

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中的窗口类型

 

#include <QtWidgets/QApplication>
#include <QLabel>

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

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值