QT 第6篇 窗口部件及窗口类型

继续投入战斗

窗口组件

图形用户界面由不同的窗口和窗口组件构成
<QtGui> 头文件包含窗口组件,对应Qt中的GUI模块
Qt 以组件对象的方式构建图形用户界面
组件类型:
	-	容器类( 父组件 ) : 用于包含其他界面组件(和数据结构中的容器类不同,数据        结构中容器类指的是 链表,栈等)
	-	功能类( 子组件 ) : 用于实现特定的交互功能

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


 QWidget 类继承自 QObject 类和 QpaintDevice 类
QObject 是所有支持 Qt 对象模型的基类
QpaintDevice  是Qt 中所有可会知组件的基类

QWidget 能够绘制自己和处理用户的输入
QWidget  是Qt中所有窗口组件类的父类( super class )(意义:抽象了所有图形用户界面所公有的属性和行为)
QWidget  是所有窗口组件的抽象
Qt 中的每个窗口组件都是一个 QWidget 
QWidget  类对象常作为父组件或顶级组件使用

编程实验

QWidget 初探

#include <QtGui/QApplication>
#include "Widget.h"

int main(int argc, char *argv[])
{
    
    
    QApplication a(argc, argv);
    QWidget w;  // 一个组件,如果没有父组件 成为了窗口,并且拥有窗口所拥有的元素(真正的QWidget在中间这一块)

    w.setWindowTitle("celebrate");
    w.show();

    
    return a.exec();
}


// 结论:
// QWidget 虽然是所有图形用户界面类的父类,但是依然可以生成对象,生成的对象往往作为顶级组件使用,也就是可以作为其他组件的父组件
// 一个组件,如果没有父组件 成为了窗口,并且拥有窗口所拥有的元素


QLabel 组件

QLabel  用于显示一个提示性的字符串
QLabel  是功能性组件,一般需要父组件作为容器
QLabel  可以作为窗口存在, 但没什么意义
QWidget w;  // 生成 QWidget 对象, 顶级组件
QLabel l(&w);  // 生成QLabel 对象,其父组件为 QWidget 

/* 设置 QLabel 组件的显示字符串 */
l.setText("this id a Lable control.");

编程实验

QLabel 组件的使用

#include <QtGui>
#include "Widget.h"

int main(int argc, char *argv[])
{
    
    
    QApplication a(argc, argv);
    QWidget w; 
    QLabel l(&w);

    l.setText("I'm a label control.");
    w.setWindowTitle("celebrate");
    w.show();

    
    return a.exec();
}

窗口类型

Qt中可以根据需要定制窗口式样
	-	窗口类型(在帮助文档中查询)(对话框是一种特别的窗口,外观有些不同)
			-	Qt::Dialog ------ 对话框类型(作为顶级父类组件,没有最大化和最小话)
			-	Qt::Window ------ 主窗口类型(作为顶级父类组件,有最大化和最小话)
			-	Qt:: SplashScreen ------ 启动画面类型(欢迎界面)
			-	…………
	-	窗口标志
			-	Qt::WindowStysOnTopHint(作为顶级窗口就不会被其他窗口遮挡)
			-	用法: QWidget w(NULL, Qt::Window | Qt::WindowStysOnTopHint ); 
			-	Qt::WindowContextHelpButtonHint

总结:

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

感谢关注,文章持续高速更新中……

猜你喜欢

转载自blog.csdn.net/dashuu/article/details/113724806