QT学习:窗口与子部件

Qt Creator提供默认基类只有QMain Window,QWidget和QDialog这三种。

QMainWindow是带有菜单栏和工具栏的主窗口类

QDialog是各种对话框的基类,而它们全部继承自QWidget.

#include <QtGui>
#include <QtWidgets>
int main(int argc,char *argv[])
{
    QApplication a(argc,argv);

    //在代码中可以使用中文字符串

//新建QWidget类对象,默认parent参数是0,所以它是个窗口

QWidget * widget = new QWidget(0,Qt::Dialog);
//设置窗口标题
widget->setWindowTitle(QObject::tr("我是widget"));
//新建QLabel对象,默认parent参数是0,所以它是个窗口
QLabel *label =new QLabel(0,Qt::SplashScreen);
label->setWindowTitle(QObject::tr("我是label"));
//设置要显示的信息
label->setText(QObject::tr("label:我是个窗口"));
//改变部件大小,以便能显示出完整得内容
label->resize(180,20);
//label2指定了父窗口为widget,所以不是窗口
QLabel * label2 = new QLabel(widget);
label2->setText(QObject::tr("label2:我不是独立窗口,只是wiget的子部件"));
label2->resize(250,20);
 //在屏幕上显示出来

    label->show();
    widget->show();
    int ret = a.exec();
    delete label;
    delete widget;
    return ret;

QT4的只有头文件#include<QtGui>模块才包含QApplication,QWidget等头文件

QT5模块分为QtGui模块和QtWidgets模块,其中Widget模块包含QApplication,Qwidget,Gui模块没有两个类。

注意这里使用new操作符为label2分配了空间,但是并没有使用进行释放,这是因为在Qt中销毁父对象的时候会自动销毁子对象。

QWidget的构造函数有两个参数:“QWidget * parent = o”和“Qt::Window Flags f= 0",前面的parent就是指父窗口部件,默认值为0,表示没有父窗口;而后面的f参数是Qt::WindowFlags类型的,是一个枚举类型,分为窗口类型和窗口标志。前面可以定义窗口的类型,比如f = 0表明使用了Qt::Widget一项,这就是QWidget的默认类型,这种类型的部件如果有父窗口,那么他就是子部件,否则就是独立的窗口。

QWidget * widget  = new QWidget( 0,Qt::Dialog | Qt :: FramelessWindouHint);

QLabel * label = new QLabel ( 0,Qt::SplashScreen | Qt::WindowStaysOnTopHint);

Qt::FramelessWindowHint用来产生一个没有边框的窗口,而Qt::WIndowStaysOnTopHint用来使该窗口停留在所有其他窗口上面。

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值