QT中窗口部件及窗口类型
--事物的难度远远低于对事物的恐惧! 在所有的图形界面中,都是由窗口和窗口组件构成的,在QT中<QtGui>头文件包含窗口组件,对应Qt中的GUI模块,并且Qt中以组件对象的方式构建图形用户界面。 在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用于显示一个提示性字符串
更多推荐
所有评论(0)