上文(Qt进阶案例(1)——利用Visual Studio将Qt的ui界面程序封装成dll库详解)介绍了利用Visual Studio将Qt的ui界面封装成dll库,本文将介绍如何利用Qt Creator将ui界面封装成dll库,其本质都是相同的。
- 1、新建Qt Class Library
- 2、新建ui界面
- 3、修改头文件并编译
- 4、新建第二个项目
- 5、编辑程序
- 6、效果演示
在Qt Creator中新建一个Qt Class Library(C++库),如下: 选择需要的模块:
Qt Creator新建ui界面比较简单,直接右键Add New即可:
ui界面布局如下:
将uidemo_global.h中的ifdef内容复制到dialog.h上,并将dialog.h的ifndef相关代码删除,在class前更换为相应的内容: 编译,正常情况下应该能编译成功:
此时,不会有任何输出,但是Release目录下会生成dll文件和lib文件:
保存,关闭。
利用Qt Creator重新新建一个项目,项目名称为“Test”,基类选择“QWidget”,点击选中创建UI界面复选框,完成项目创建。 UI界面如下,只有一个按钮PushButton: 然后将之前的dialog.h头文件(放在include文件夹中)和lib文件(放在lib文件夹中)和dll文件放在project同级目录下:
在exe同级目录下放入dll文件:
在pro中添加include包含目录:
INCLUDEPATH += include
添加附加库目录:
LIBS +=$$PWD/lib/*.lib
$$PWD表示的意思就是pro文件所在的目录。
5、编辑程序在widget.h头文件中增加一个私有变量和一个按钮点击槽函数,并包含之前的头文件: 在cpp源文件中对其进行定义,完整代码如下:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
dlg = new Dialog();//new对象
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_clicked()
{
dlg->show();//显示对话框
}
6、效果演示
完整效果如下:
如果没有看懂的话,完整代码可以参考:https://download.csdn.net/download/didi_ya/84511153
ok,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~