• Qt QTabWidget插入widget(重要的是编程思想)


    今天看了某xx项目源码。

    发现大神们都是这么写代码的。

    比如QTableWidget,每一个页面都插入一个QWidget,而不是一个人在一个一个Tab里面拖控件。

     

    原始的运行图如下(没有插入QWidget):

     

    插入两个QWidget后效果如下:

     

    代码如下:

    Widget.h

     1 #ifndef WIDGET_H
     2 #define WIDGET_H
     3  
     4 #include <QWidget>
     5 #include "form1.h"
     6 #include "form2.h"
     7  
     8  
     9 namespace Ui {
    10 class Widget;
    11 }
    12  
    13 class Widget : public QWidget
    14 {
    15     Q_OBJECT
    16  
    17 public:
    18     explicit Widget(QWidget *parent = 0);
    19     ~Widget();
    20  
    21 private:
    22     Ui::Widget *ui;
    23     Form1 *form1;
    24     Form2 *form2;
    25 };
    26  
    27 #endif // WIDGET_H

    form1.h

     1 #ifndef FORM1_H
     2 #define FORM1_H
     3  
     4 #include <QWidget>
     5  
     6 namespace Ui {
     7 class Form1;
     8 }
     9  
    10 class Form1 : public QWidget
    11 {
    12     Q_OBJECT
    13  
    14 public:
    15     explicit Form1(QWidget *parent = 0);
    16     ~Form1();
    17  
    18 private:
    19     Ui::Form1 *ui;
    20 };
    21  
    22 #endif // FORM1_H

    form2.h

     1 #ifndef FORM2_H
     2 #define FORM2_H
     3  
     4 #include <QWidget>
     5  
     6 namespace Ui {
     7 class Form2;
     8 }
     9  
    10 class Form2 : public QWidget
    11 {
    12     Q_OBJECT
    13  
    14 public:
    15     explicit Form2(QWidget *parent = 0);
    16     ~Form2();
    17  
    18 private:
    19     Ui::Form2 *ui;
    20 };
    21  
    22 #endif // FORM2_H

    widget.cpp

     1 #include "widget.h"
     2 #include "ui_widget.h"
     3  
     4 Widget::Widget(QWidget *parent) :
     5     QWidget(parent),
     6     ui(new Ui::Widget)
     7 {
     8     ui->setupUi(this);
     9     form1=new Form1();
    10     ui->tabWidget->insertTab(0,form1,tr("全是按钮"));
    11  
    12     form2=new Form2();
    13     ui->tabWidget->insertTab(1,form2,tr("全是CheckBox"));
    14 }
    15  
    16 Widget::~Widget()
    17 {
    18     delete ui;
    19 }

    form1.cpp

     1 #include "form1.h"
     2 #include "ui_form1.h"
     3  
     4 Form1::Form1(QWidget *parent) :
     5     QWidget(parent),
     6     ui(new Ui::Form1)
     7 {
     8     ui->setupUi(this);
     9 }
    10  
    11 Form1::~Form1()
    12 {
    13     delete ui;
    14 }

    form2.cpp

     1 #include "form2.h"
     2 #include "ui_form2.h"
     3  
     4 Form2::Form2(QWidget *parent) :
     5     QWidget(parent),
     6     ui(new Ui::Form2)
     7 {
     8     ui->setupUi(this);
     9 }
    10  
    11 Form2::~Form2()
    12 {
    13     delete ui;
    14 }

    main.cpp

     1 #include "widget.h"
     2 #include <QApplication>
     3  
     4 int main(int argc, char *argv[])
     5 {
     6     QApplication a(argc, argv);
     7     Widget w;
     8     w.show();
     9  
    10     return a.exec();
    11 }
  • 相关阅读:
    20145301&20145321&20145335实验三
    20145301《信息安全系统设计基础》第12周学习总结
    20145301&20145321&20145335实验五
    20145240 《信息安全系统设计基础》课程总结
    20145240《信息安全系统设计基础》第十四周学习总结
    20145240《信息安全系统设计基础》第十三周学习总结
    20145240 《信息安全系统设计基础》第六周同学问题总结
    20145240 GDB调试汇编堆栈过程分析
    20145240 《信息安全系统设计基础》实验五 网络通信
    20145240《信息安全系统设计基础》实验四 驱动程序设计
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/13569525.html
Copyright © 2020-2023  润新知