Qt之ui在程序中的使用——(3)动态加载ui

本文介绍了一个使用Qt的QUiLoader类动态加载界面的示例。通过创建loadUi类继承自QDialog,并利用QUiLoader从文件加载界面,实现了子窗口的动态创建。示例代码展示了如何设置信号槽来触发子窗口的加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

image

loadui.h

#ifndef LOADUI_H
#define LOADUI_H

#include <QtGui/QDialog>
#include "ui_loadui.h"

class loadUi : public QDialog
{
	Q_OBJECT

public:
	loadUi(QWidget *parent = 0, Qt::WFlags flags = 0);
	~loadUi();

private:
	Ui::loadUiClass ui;
	private slots:
		void sl_creatChild();
};

#endif // LOADUI_H

loadui.cpp

#include "loadui.h"
#include <QtUiTools/QtUiTools>

loadUi::loadUi(QWidget *parent, Qt::WFlags flags)
	: QDialog(parent, flags)
{
	ui.setupUi(this);
	connect(ui.btnCreatChild,SIGNAL(clicked()),this,SLOT(sl_creatChild()));
}

loadUi::~loadUi()
{

}

void loadUi::sl_creatChild()
{
	QUiLoader loader;
	QFile file("forms/child.ui");
	file.open(QFile::ReadOnly);
	QWidget *widget_child = loader.load(&file);
	file.close();
	widget_child->show();
}

main.cpp

#include "loadui.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	loadUi w;
	w.show();
	return a.exec();
}

因为本示例中用到了QUiLoader类,需要image

,还有资源里应该加载child.ui的路径。(<qresource><file>forms/child.ui</file></qresource>)


转载于:https://www.cnblogs.com/hanzhaoxin/archive/2012/11/15/2771077.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值