Qt:使用QUiLoader动态加载.ui

  1. 通常我们创建一个.ui文件,通过Qt Designer用拖拽的方式布置界面时,会需要用到uic工具吧.ui文件转化成相应的c++代码。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    而动态加载.ui文件是在程序运行过程中用 QUiLoader动态加载.ui文件,达到相同目的,而无需通过上述的uic进行转换。

其适用于:
(1)UI文件是程序运行中途创建生成的,在同程序的其他地方调用,没法进行uic。
(2)前端设计和功能实现相分离,前端设计人员和功能实现人员只要事前沟通好相关组件的名称等,就可以进行独立开发,能提高效率。

  1. 需要用到头文件< QUiLoader >,注意配置好相应的依赖目录。

  2. 实现

	QUiLoader loader;
	QString fileName = "./func.ui"; //.ui文件的路径
	QFile file(fileName);
	if (!file.open(QFile::ReadOnly))//打开文件
		return;

	loader.addPluginPath(QApplication::applicationDirPath());//将给定路径添加到加载程序在查找插件时将搜索的路径列表中。
	m_pCustomWidget = loader.load(&file, this);
	file.close();
	if (m_pCustomWidget)
	{
		ui.verticalLayout->addWidget(m_pCustomWidget);//在主ui中动态加载.ui的界面
	}

使用.ui中的控件对象,需要用findChild进行查找。

m_pbtnError = m_pCustomWidget->findChild<HomagToolButton *>("m_btnError");
	m_pbtnMenu = m_pCustomWidget->findChild<QPushButton *>("m_btnMenu");
	m_pstackedWidget = m_pCustomWidget->findChild<QStackedWidget *>("stackedWidget");
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值