1、打开VS,新建一个项目,具体如下:
下面内容一路默认,
点击finish,完成主入口的创建。
2、编辑主入口的.ui文件,得到以下效果:
3、创建Qt动态库,具体如下:
右击解决方案,选择“添加”->“新建项目”->“Qt class library”。
新建项目后,生成了以上三个文件。
4、给动态库项目添加ui界面,具体如下:
5、在文件中添加代码。
(1)在test2UI.h文件中,代码如下:设置单例
class TEST2UI_EXPORT test2UI
{
//设置单例
public:
static test2UI& Instance() {
static test2UI _instance;
return _instance;
}
protected:
test2UI();
};
(2)create_test2Dlg.cpp文件中,添加函数,并在对应的头文件内添加声明。
void create_test2Dlg::Show()
{
Init();//初始化
showNormal();//正常显示
}
void create_test2Dlg::Init()
{
//设置窗体框架
setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
//控件初始化
//信号与槽的连接
}
(3)在test2UI.cpp中添加函数。在相关的头文件中写好声明。
create_test2Dlg * g_pRigidCellDlg = NULL; //创建对象指针
test2UI::test2UI()
{
}
void test2UI::ShowCreate_test2Dlg()
{
g_pRigidCellDlg->Show();
}
(4)在test2.cpp中添加代码信号与槽的连接,并设置为公共槽,具体如下:
test2::test2(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
connect(ui.DoBtn, SIGNAL(clicked()), this, SLOT(OnClickDoBtn()));
}
void test2::OnClickDoBtn()
{
test2UI::Instance().ShowCreate_test2Dlg();
}
6、在主入口(test2)处,右击选择属性,在VC++目录-库目录中添加lib路径。
7、如果上述流程进行后,还有“无法解析外部符号”的问题。解决方法如下:
右击主项目,选择属性->链接器->输入->附加依赖项,然后添加“Test2UI.lib”文件,然后重新编译即可。具体如下图:
8、链接动态库时,应先检查动态库输出位置,然后再设计“库目录”的文件路径。检查输出位置,右击动态库项目,选择属性->链接器->常规->输出文件。如果是Release,则对应VC++目录中的库目录应保持路径为Release。
9、右键主入口项目,选择生成依赖项,选择项目依赖项,将待引入lib库进行勾选,如下: