Qt学习笔记 -------------------------QWidget 1

来源:互联网 发布:行知实践园观后感400 编辑:程序博客网 时间:2024/05/18 17:00

新建一个空项目, 往项目中添加 main.cpp 文件

在项目的.pro文件中添加 Qt += widgets(用的Qt 5.8,不加会有错误)

在main.cpp中添加如下代码

#include<QApplication>
#include<QtWidgets>
int main(int argc,char *argv[])
{
    QApplication a(argc,argv);
    QWidget *widget = new QWidget(0,Qt::Dialog | Qt::FramelessWindowHint);
    widget->setWindowTitle(QObject::tr("我是widget"));
    QLabel *label = new QLabel(0,Qt::SplashScreen | Qt::WindowStaysOnTopHint);
    label->setWindowTitle(QObject::tr("我是label"));
    label->setText(QObject::tr("label:我是个窗口"));
    label->resize(180,20);
    QLabel *label2 = new QLabel(widget);
    label2->setText(QObject::tr("label2:我不是窗口,我是widget的子部件"));
    label2->resize(250,20);
    label->show();
    widget->show();
    int ret = a.exec();
    delete label;
  //  delete label2;
    delete widget;
    return ret;
}

QWidget::QWidget(QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags());

这个是QWidget的构造函数,前者是父窗口部件,默认为0,表示没有父窗口;后者参数是Qt::WindowFlags 类型,是一个枚举类型,分为窗口型(WindowType)和窗口标志(WindowFlags)。具体如上代码。

最后的话,我们不用销毁label2,因为在Qt中,销毁父对象的时候,会自动销毁子对象。

最后的运行结果会是俩个窗口,如图。label也会是个窗口,Qt把没有嵌入到其他部件中的部件称为窗口。


原创粉丝点击