
打开APP
乄夵。
关注
Qt5中动态加载ui文件写的界面(用QtUiTools /QUiLoader实现) 原创
2022-09-13 10:42:00
乄夵。
码龄4年
关注
由QUiLoader类提供的表单加载器对象用于构造用户界面。这个用户界面可以从任何QIODevice中检索例如,QFile对象可用于获取存储在项目资源中的表单。QUiLoader::load()函数接受文件中包含的用户界面描述,并构造表单小部件。
使用QUiLoader 动态加载ui文件可以说是做到了,界面设计和逻辑的相互分离
QUiLoader的实用方法
QTabWidget *tab = new QTabWidget(this)
setCentralWidget(tab)
通过load函数即可根据.ui文件创建出一个对应的QWidget对象,后面的this指针是QWidget *类型的,你可以用其它窗体去作为formWidget的父窗体。父窗体被显示的时候,该formWidget窗体就会被显示,当然更好的方法是用一个QLayout来管理formWidget,因为父窗体可能不止一个子窗体,我这里作为一个演示,将QTabWidget作为窗体的父窗体。
如果你还想对cuteqt.ui中的那些子窗体信号作处理,那么可以用qFindChild去找到它们。
QWidget *leftPanel = Q_NULLPTR
leftPanel = formwidget ->findChild<QWidget *>(“leftPanel”)
ui_setButton = qFindChild<QPushButton*>(this, “setButton”)
ui_clearButton = qFindChild<QPushButton*>(this, “clearButton”)
ui_textEdit = qFindChild<QTextEdit*>(this, “textEdit”)
比如你可以用
connect(ui_setButton,SIGNAL(clicked()),this,SLOT(setButtonClicked()))处理ui_setButton的clicked()信号。
使用QUiLoader要检查pro文件加上CONFIG += uitools
在头文件引用#include <QtUiTools/QUiLoader>
file 中的:/f/test.ui 是需要添加到你的qrc资源文件当中的不然容易造成路径错误
An error has occurred while reading the UI file at line 1, column 0: Premature end of document.
有两种启动方式1.在软件中心安装的QT会在桌面创建QT的快捷方式,这时候可以直接双击打开2.使用命令在终端中打开。如果将QT的bin目录添加到系统的环境变量中之后。可以直接输入qtcreater打开(可以先输入qtcre然后按tab键检测是否加入环境变量)如果没加入环境变量,需要先找到QT的解压安装包的路径,然后进入bin目录使用./qtcreater打开QT1,如果同时打开静态库和运行程序调用,调式模式下,可以进入静态库的内部函数进行调试;2,其实不用把shadow build取消勾选;文件输出的文件就是lib***.a的文件,可以在shadow目录里面很方便找到;
3,新的项目使用的时候,就是让其能找到lib***.a,和该库的h头文件;
4,QT的编译输出的静态库名字会自动在项目名字前加lib三个字,后缀是.a;
5, QT5.15的编程的工程与该例子中缺少“需要什么模块就添加什么”的部分;
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)