首页 > 技术文章 > Qt之新建界面动态库并使用

ITGUANCHAZHE 2020-03-12 22:20 原文

动态库的创建

动态库的使用


动态库的创建

 

//SharedLib_global.h
#ifndef SHAREDLIB_GLOBAL_H
#define SHAREDLIB_GLOBAL_H

#include <QtCore/qglobal.h>

#if defined(SHAREDLIB_LIBRARY)
#  define SHAREDLIB_EXPORT Q_DECL_EXPORT
#else
#  define SHAREDLIB_EXPORT Q_DECL_IMPORT
#endif

#endif // SHAREDLIB_GLOBAL_H
//SharedLib.h
#ifndef SHAREDLIB_H
#define SHAREDLIB_H

#include "SharedLib_global.h"

class SHAREDLIB_EXPORT SharedLib
{
public:
    SharedLib();
};

#endif // SHAREDLIB_H

 

//SharedLib.cpp
#include "sharedlib.h"

SharedLib::SharedLib()
{
}

以上就可以新建一个没有界面的动态库,如果想封装含有UI的动态库,接着看

添加界面类,类名和上面的一模一样,都是SharedLib。

进行覆盖原文件

 

//原来的SharedLib.cpp
#ifndef SHAREDLIB_H
#define SHAREDLIB_H

#include <QWidget>

namespace Ui {
class SharedLib;
}

class SharedLib : public QWidget
{
    Q_OBJECT

public:
    explicit SharedLib(QWidget *parent = nullptr);
    ~SharedLib();

private:
    Ui::SharedLib *ui;
};

#endif // SHAREDLIB_H

增加库的导进导出

修改UI进行测试

点击小锤子进行编译库,不能点击运行,因为只是单纯库,还不能独立运行。

进入构建目录就可以看到生成的库文件了。

 

动态库的使用

新建Demo进行测试

 

 

选择lib文件

win32: LIBS += -L$$PWD/../build-SharedLib-Desktop_Qt_5_14_1_MSVC2017_64bit-Debug/debug/ -lSharedLib

INCLUDEPATH += $$PWD/../build-SharedLib-Desktop_Qt_5_14_1_MSVC2017_64bit-Debug/debug
DEPENDPATH += $$PWD/../build-SharedLib-Desktop_Qt_5_14_1_MSVC2017_64bit-Debug/debug

把库文件的两个头文件复制在项目目录并添加到项目工程

修改sharedlib.h的头文件,只保留public部分。

//SharedLib.h
#ifndef SHAREDLIB_H
#define SHAREDLIB_H

#include <QWidget>
#include "SharedLib_global.h"
class SHAREDLIB_EXPORT SharedLib : public QWidget
{
public:
    explicit SharedLib(QWidget *parent = nullptr);
    ~SharedLib();
};

#endif // SHAREDLIB_H

效果如下:

 

 

推荐阅读