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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM