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();  

截图说明:

相关内容