要使用动态加载ui窗体,首先要申明:
#include
可以在程序运行时,动态加载UI窗体。
代码如下:
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
QTabWidget *tabWidget = new QTabWidget(this);
QWidget *w1 = new QWidget;
firstUi.setupUi(w1);
QWidget *w2 = new QWidget;
secondUi.setupUi(w2);
tabWidget->addTab(w1,"First");
tabWidget->addTab(w2,"Second");
tabWidget->resize(300,300);
connect(firstUi.childPushButton,SIGNAL(clicked()),this,SLOT(slotChild()));
connect(secondUi.closePushButton,SIGNAL(clicked()),this,SLOT(close()));
}
void MyWidget::slotChild()
{
QUiLoader loader;
QFile file(":/forms/third.ui");
file.open(QFile::ReadOnly);
QWidget *third = loader.load(&file);
file.close();
third->show();
}
下面这些代码即为运态加载,从当前目录下的forms文件夹下面引入third.ui即可。
可以看出是以只读的形式打开.使用QUiLoader方式。
QUiLoader loader;
QFile file(":/forms/third.ui");
file.open(QFile::ReadOnly);
QWidget *third = loader.load(&file);
file.close();
third->show();
本篇文章来源于 Linux公社网站() 原文链接:
阅读(932) | 评论(0) | 转发(0) |