Qt4之动态加载Ui 窗体控件 .

要使用动态加载ui窗体,首先要申明:

#include <QtUiTools>

可以在程序运行时,动态加载UI窗体。

代码如下:

1.MyWidget::MyWidget(QWidget *parent)  
2.    : QWidget(parent)  
3.{     
4.    QTabWidget *tabWidget = new QTabWidget(this);       
5.      
6.    QWidget *w1 = new QWidget;  
7.    firstUi.setupUi(w1);    
8.      
9.    QWidget *w2 = new QWidget;  
10.    secondUi.setupUi(w2);  
11.  
12.    tabWidget->addTab(w1,"First");  
13.    tabWidget->addTab(w2,"Second");  
14.      
15.    tabWidget->resize(300,300);  
16.      
17.    connect(firstUi.childPushButton,SIGNAL(clicked()),this,SLOT(slotChild()));   
18.    connect(secondUi.closePushButton,SIGNAL(clicked()),this,SLOT(close()));     
19.}  
20.  
21.void MyWidget::slotChild()  
22.{  
23.    QUiLoader loader;  
24.    QFile file(":/forms/third.ui");  
25.    file.open(QFile::ReadOnly);  
26.    QWidget *third = loader.load(&file);  
27.    file.close();  
28.  
29.    third->show();  
30.} 
下面这些代码即为运态加载,从当前目录下的forms文件夹下面引入third.ui即可。
可以看出是以只读的形式打开.使用QUiLoader方式。

1.QUiLoader loader;  
2.   QFile file(":/forms/third.ui");  
3.   file.open(QFile::ReadOnly);  
4.   QWidget *third = loader.load(&file);  
5.   file.close();  
6.  
7.   third->show(); 

Qt4之动态加载Ui 窗体控件 ._第1张图片

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-10/46198.htm

你可能感兴趣的:(Qt4之动态加载Ui 窗体控件 .)