zoukankan      html  css  js  c++  java
  • Qt窗口部件及子部件

    QWidget类是所有用户界面对象的基类,被称为基础窗口部件。

    #include <QApplication>
    #include<QLabel>
    #include<QWidget>
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
            // 新建QWidget类对象,默认parent参数是0,所以它是个窗口
            QWidget *widget = new QWidget();
    
            // 设置窗口标题
            widget->setWindowTitle(QObject::tr("我是widget"));
    
            // 新建QLabel对象,默认parent参数是0,所以它是个窗口
            QLabel *label = new QLabel();
    
            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:我不是独立窗口,只是widget的子部件"));
    
            label2->resize(250, 20);
    
            // 在屏幕上显示出来
            label->show();
            widget->show();
    
        return a.exec();
    }
    

     1. Qt中把没有嵌入到其他部件中的部件称为窗口,一般窗口都有边框和标题栏,就像程序中的widget和label一样。窗口就是没有父部件的部件,所有又称为顶级部件.与其相对的是非窗口部件,又称为子部件.

        2.针对于以上这种简单的说法有弊端,如:QDialog为窗口是毋庸置疑的吧,但是在使用对话框时为其指定父窗口也是在正常不过了;

      3.本人所看书上最后还有两句代码delete label; delete widget;,但是添上这两句后运行结果会在后台显示,不会出现在桌面上;   

      4.程序中程序中label没有父窗口,而label2在widget中,widget是其父窗口。程序中使用new为label2分配了空间,但是并没有使用delete进行释放,这是因为在Qt中销毁父对象的时候会自动销毁子对象。

  • 相关阅读:
    作业6 团队项目之需求(改)
    作业6第一天进度
    作业6第二天进度
    作业6四则运算APP之Sprint计划
    作业6第3、4、5天进度
    重新梳理Python基础(7)
    BAE博客开发之基础知识积累Django篇(1)
    重新梳理Python基础(11)
    重新梳理Python基础(6)
    重新梳理Python基础(9)
  • 原文地址:https://www.cnblogs.com/scf141592/p/4983669.html
Copyright © 2011-2022 走看看