第六课、窗口组件及窗口类型------------------狄泰软件学院

一、窗口组件

1、组件的介绍

(1)、图形用户界面由不同类型的窗口和窗口组件构成

(2)、<QtGui>头文件包含窗口组件,对应Qt中的GUI模块

(3)、Qt以组件对象的方式构建图形用户界面

(4)、组件的类型

A、容器类(父组件):用于包含其它的界面组件(Qt中没有父组件的顶级组件叫做窗口

B、功能类(子组件):用于实现特定的交互功能

2、QWidget组件

(1)、Qwidget类继承自QObjectQPaintDevice

A、QObject所有支持Qt对象的基类

B、QPaintDevice是Qt中所有可绘制组件的基类

(2)、QWidget能够绘制自己和处理用户输入

(3)、QWidget是Qt中所有窗口组件类的父类(super class)

(4)、QWidget是所有窗口组件的的抽象

(5)、Qt的每个窗口组件都是一个QWidget

(6)、QWidget类对象常作为父组件或顶级组件使用

3、QLabel组件

(1)、QLabel用于显示一个提示性的字符串

(2)、QLabel是功能性组件一般需要父组件作为容器

(3)、QLabel可以作为窗口存在,但没有什么意义

//Widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QtGui/QWidget>

class Widget : public QWidget
{
    Q_OBJECT
    
public:
    Widget(QWidget *parent = 0);
    ~Widget();
};

#endif // WIDGET_H

//Widget.cpp

#include "Widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
}

Widget::~Widget()
{
    
}

//main.cpp

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

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;//没有父组件,成为窗口
    QLabel l(&w);//父组件为w

    w.setWindowTitle("D.T.Software");
    l.setText("I'm a label");
    w.show();

    /*说明label也可以成为一个窗口(因为继承自QWidget),但没什么意义
    QLabel l;
    l.setWindowTitle("D.T.Software");
    l.setText("I'm a label");
    l.show();
    */
    return a.exec();
}

 

二、窗口的类型(关键字Qt::WindowType可以查到窗口的类型和样式):在构造函数的第二个参数处设置。第一个参数为父类

1、Qt中可以根据需要定制窗口样式

(1)、窗口类型:

A、Qt::Dialog : 对话框类型

B、Qt::Window : 主窗口类型

 

 

C、Qt::SplashScreen : 启动画面类型(可以用来做欢迎界面)

 (2)、窗口标志

A、Qt::WindowStaysOnTopHint(始终在顶层)

B、Qt::WindowContexHelpButtonHint(最大最小化按钮变成了帮助按钮)

 

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

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w(0,Qt::Window|Qt::WindowStaysOnTopHint);//没有父组件,成为窗口
    QLabel l(&w);//父组件为w

    w.setWindowTitle("D.T.Software");
    l.setText("I'm a label");
    w.show();

    /*说明label也可以成为一个窗口(因为继承自QWidget),但没什么意义
    QLabel l;
    l.setWindowTitle("D.T.Software");
    l.setText("I'm a label");
    l.show();
    */
    return a.exec();
}

三、小结

(1)、Qt以组件对象的方式构建图形用户界面

(2)、QWidget是Qt中所有窗口组件类的父类(super class)

(3)、QWidget类对象常作为父组件顶级组件使用

(4)、Qt中可以根据需要定制窗口样式

(5)、QLabel用于显示一个提示性的字符串

 

转载于:https://www.cnblogs.com/gui-lin/p/6386773.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值