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中销毁父对象的时候会自动销毁子对象。

  • 相关阅读:
    SqlBulkCopy 的2篇不错的文章
    xml、json反序列化得到相应的类
    DataTable的使用操作持续更新
    asp.net mvc 添加下拉列表
    asp.net mvc 简单实现权限控制
    ASP.NET 实现上传EXCEL,利用NOPI操作,转换得到DataTable
    asp.net mvc code first 在本地数据库中生成数据库
    第一个随笔
    vb中字母排列组合输出函数
    使用SQL语句查询某表中所有的主键、唯一索引以及这些主键、索引所包含的字段
  • 原文地址:https://www.cnblogs.com/scf141592/p/4983669.html
Copyright © 2011-2022 走看看