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