zoukankan      html  css  js  c++  java
  • QT学习笔记二 窗口和子部件

    先说一下继承关系:

    新建一个QT Widgets应用程序时,可供选择的基类有三个:QMainWindow,QWidget和QDialog

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

    QDialog是各种对话框的基类

    QMainwindow和QDialog都继承自QWidget,不仅是这两个类,其他所有窗口部件都最终继承自QWidget

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

    QWidget继承自QObject和QPaintDevice

    QObject是所有支持QT对象模型的基类

    QPaintDevice是所有可以绘制的对象的基类

    写一个窗口和子部件的例子:

    1 创建一个空项目:New Project->其他项目->Empty qmake Project

    2 在.pro文件中加上下面信息

    3 添加一个C++源文件:添加新文件->C++->C++ Source File, 文件名:main.cpp,内容如下:

     1 #include <QtWidgets>
     2 
     3 int main(int argc, char *argv[]){
     4     QApplication a(argc,argv);
     5 
     6     QWidget *w = new QWidget();  // 新建QWidget对象,默认的parent参数是0,表明它是窗口,没有父窗口
     7     w->setWindowTitle(QObject::tr("我是一个窗口,没有父窗口"));  // 设置窗口标题
     8     w->resize(400,300);
     9     // QObject::tr函数可以实现多语言支持,建议程序中所有要显示到界面的文字都使用tr函数扩起来
    10 
    11     QLabel *l1 = new QLabel();  // 新建QLabel对象,默认的parent参数是0,表明它是窗口,没有父窗口
    12     l1->setWindowTitle(QObject::tr("我是一个Label,同时也是一个窗口,因为我没有父窗口"));
    13     l1->setText(QObject::tr("别看我是一个QLabel对象,但我继承自QWidget,所以我也是窗口,别瞧不起我!")); // 设置label内容
    14     l1->resize(600,150); // 设置label大小
    15 
    16     QLabel *l2 = new QLabel(w); // 新建QLabel对象,参数是上面的QWidget对象,所以它不是窗口,子部件,因为有父窗口,
    17     l2->setWindowTitle(QObject::tr("设置label的窗口标题")); // 因为它不是窗口,所以这句话没有作用
    18     l2->setText(QObject::tr("我是一个Label,我有父窗口,所以我是子部件哦!"));
    19     l2->resize(350,150);
    20 
    21     w->show();  // 显示QWidget窗口
    22     l1->show(); // 显示QLabel窗口
    23 
    24     int ret = a.exec();
    25 
    26     delete l1; // 销毁QLabel对象
    27     delete w;  // 销毁QWidget对象
    28     // 因为l2的父窗口w被销毁,其子部件会自动销毁,所以l2不用单独销毁
    29 
    30     return ret;
    31 }

    显示效果如下:

  • 相关阅读:
    vue使用elementui合并table
    使用layui框架导出table表为excel
    vue使用elementui框架,导出table表格为excel格式
    前台传数据给后台的几种方式
    uni.app图片同比例缩放
    我的博客
    【C语言】取16进制的每一位
    SharePoint Solution 是如何部署的呢 ???
    无效的数据被用来用作更新列表项 Invalid data has been used to update the list item. The field you are trying to update may be read only.
    SharePoint 判断用户在文件夹上是否有权限的方法
  • 原文地址:https://www.cnblogs.com/liyunfei0103/p/9079715.html
Copyright © 2011-2022 走看看