歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

截圖說明:

Copyright © Linux教程網 All Rights Reserved