显示dll里的QWidget

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了显示dll里的QWidget相关的知识,希望对你有一定的参考价值。

1 新建库->C++库

2 命名(此处为mydll)并选择共享库--下一步--下一步

3 选择所需要的模块(有使用到的都选上)此处勾选前三项QtCore+QtGui+QtWidgets

4 完成创建

5 添加界面文件---新建-文件和类-Qt设计师界面

6 选界面模板Widget(根据需要)

7 设定保存文件名(此处同项目名为mydll)

8 进入可视化界面设计,修改objectName为mydll(此处必须设定成与项目类同名,否则会报错)

9 修改mylib.h

原内容

 

#ifndef MYDLL_H
#define MYDLL_H

#include "mydll_global.h"

class MYDLLSHARED_EXPORT Mydll
{

public:
    Mydll();
};

#endif // MYDLL_H

 

改为

 


#ifndef MYDLL_H
#define MYDLL_H
#include "mydll_global.h"
#include <QWidget>
namespace Ui {
    class mydll;
}
class MYDLLSHARED_EXPORT Mydll:public QWidget
{
public:
    Mydll(QWidget *parent = 0);
private:
    Ui::mydll *ui;
};
#endif // MYDLL_H


10 修改mydll.cpp

 

原内容

 

#include "mydll.h"


Mydll::Mydll()
{
}

 

 

改为

 

#include "mydll.h"
#include "ui_mydll.h"

Mydll::Mydll(QWidget *parent):
    QWidget(parent),
    ui(new Ui::mydll)
{
    ui->setupUi(this);
}

 

 

11构建即可生成dll(注意使用静态编译的Qt只生成.a没有生成dll)

 

 

12 使用dll和使用其它dll一样

 

INCLUDEPATH += D:\Qt\mydll\mydll
LIBS += D:\Qt\mydll\build-mydll-Desktop_Qt_5_3_MinGW_32bit-Release\release\mydll.dll

 

.h

 

#include "mydll.h"
private:
    mydll w;

 

 

.cpp

 

w.show();

 

 

即可

注意:需要头文件mydll.h同时也要把mydll_global.h放在同文件夹内(如在mydll内将二者合并无法创建dll)

http://blog.csdn.net/yh_1988/article/details/71933369

以上是关于显示dll里的QWidget的主要内容,如果未能解决你的问题,请参考以下文章

Qt系列文章之三十八(基于QWidget 创建和使用动态dll共享库)

通过 C API 提供 QWidget 的 DLL

为啥这个自定义 QWidget 不能正确显示

QWidget 不显示 QLabel

C#开发的OpenRA动态加载插件DLL里的类实现

C#开发的OpenRA动态加载插件DLL里的类实现