目录

  • 1、新建Qt Class Library
  • 2、新建ui界面
  • 3、添加项目
  • 4、修改头文件并编译
  • 5、新建第二个项目
  • 6、编辑程序
  • 7、效果演示


1、新建Qt Class Library

先建一个Qt Class Library,如下:

qt treeview 数据虚拟化处理 qt virtual_ui

qt treeview 数据虚拟化处理 qt virtual_qt_02

2、新建ui界面

新建一个ui界面,以Dialog为例,如下:

qt treeview 数据虚拟化处理 qt virtual_qt_03


在ui界面上输入想输入的内容,例如:

qt treeview 数据虚拟化处理 qt virtual_qt treeview 数据虚拟化处理_04

【注】:由于Qt Creator搭建ui界面比Visual Studio更加方便,因此这里建议在QtCreator上建完ui界面,布局如下:

qt treeview 数据虚拟化处理 qt virtual_c++_05


然后将文件保存,将.h文件、.cpp文件和.ui文件一起移动到之前VS文件所在的文件夹中:

qt treeview 数据虚拟化处理 qt virtual_visual studio_06

3、添加项目

在Visual Studio中添加这三个文件:

qt treeview 数据虚拟化处理 qt virtual_visual studio_07


加入这三个文件,加入后目录如下:

qt treeview 数据虚拟化处理 qt virtual_visual studio_08

4、修改头文件并编译

将uidemo_global.h中的ifdef内容复制到dialog.h上:

qt treeview 数据虚拟化处理 qt virtual_qt treeview 数据虚拟化处理_09


然后在class后Dialog前加入:UIDEMO_EXPORT:

qt treeview 数据虚拟化处理 qt virtual_c++_10


在属性——>Qt Project Settings——>Qt Modules中引入必要的Qt库:

qt treeview 数据虚拟化处理 qt virtual_visual studio_11


右键——>生成,正常情况下应该能生成成功:

qt treeview 数据虚拟化处理 qt virtual_qt_12


此时,Release目录下会生成dll库:

qt treeview 数据虚拟化处理 qt virtual_visual studio_13


保存,关闭。

5、新建第二个项目

然后利用Visual Studio重新新建一个项目,命名为Test。

qt treeview 数据虚拟化处理 qt virtual_qt_14


在Test.ui中添加一个PushButton,如下:

qt treeview 数据虚拟化处理 qt virtual_qt treeview 数据虚拟化处理_15


然后将之前的dialog.h头文件(放在include文件夹中)和lib文件(放在lib文件夹中)和dll文件放在project同级目录下:

qt treeview 数据虚拟化处理 qt virtual_c++_16


修改附加包含目录(C/C++——>常规——>附加包含目录):

qt treeview 数据虚拟化处理 qt virtual_qt_17


修改附加库目录(链接器——>常规——>附加库目录):

qt treeview 数据虚拟化处理 qt virtual_ui_18


添加附加依赖项(链接器——>输入——>附加依赖项):

qt treeview 数据虚拟化处理 qt virtual_ui_19

6、编辑程序

在Test.h头文件中增加一个私有变量和一个按钮点击槽函数,并包含之前的头文件:

qt treeview 数据虚拟化处理 qt virtual_c++_20


在cpp源文件中对其进行定义,完整代码如下:

#include "Test.h"

Test::Test(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    dlg = new Dialog();//new对象
}


//定义按钮点击槽函数
void Test::on_pushButton_clicked()
{
    dlg->show();//显示对话框
}

7、效果演示

完整效果如下:

qt treeview 数据虚拟化处理 qt virtual_c++_21

如果没有看懂的话,完整代码可以参考:


ok,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~