前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >54.Qt-将界面程序封装成DLL

54.Qt-将界面程序封装成DLL

作者头像
诺谦
发布2020-04-24 17:15:25
2.5K0
发布2020-04-24 17:15:25
举报
文章被收录于专栏:Linux驱动Linux驱动

1.生成dll

创建好后,修改pro文件,改为DEFINES += WIDGETDLL_LIBRARY:

然后对着dll项目右击新建,创建widget界面:

修改界面文件:

widget.h如下:

代码语言:javascript
复制
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class widget;
}
class widget : public QWidget
{
    Q_OBJECT

public:
    explicit widget(QWidget *parent = 0);
    ~widget();

signals:
    void send(QString);

private slots:
    void on_pushButton_clicked();

private:
    Ui::widget *ui;
};
#endif // WIDGET_H

widget.cpp如下:

代码语言:javascript
复制
#include "widget.h"
#include "ui_widget.h"

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

widget::~widget()
{
    delete ui;
}

void widget::on_pushButton_clicked()
{
    emit send(ui->plainTextEdit->toPlainText());
}

最后点击锤子,生成DLL:

最终build-dll-Desktop_Qt_5_7_1_MinGW_32bit-Debug\debug下生成如下:

而主程序需要用到的有:

build-dll-Desktop_Qt_5_7_1_MinGW_32bit-Debug\debug\dll.dll:需要拷贝到主程序exe下

libdll.a:用来标记dll程序函数符号等在dll中的偏移位置,主程序需要通过LIBS+=来声明

h头文件:供给主程序使用

2.主程序调用dll

新建一个app:

然后创建好后,右击添加dll头文件:

然后修改pro,添加lib, " LIBS+=F:\QT\QT\media\QTMedia\build-dll-Desktop_Qt_5_7_1_MinGW_32bit-Debug\debug\libdll.a ":

最后运行,然后并将dll拷贝到主程序exe下面.

然后在主程序里,调用dll的界面控件:

代码语言:javascript
复制
Form::Form(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form)
{
    ui->setupUi(this);

    w.show();  //w是dll的界面控件
    connect(&w,SIGNAL(send(QString)),this,SLOT(print(QString)));
}
void Form::print(QString str)
{
    ui->plainTextEdit->setPlainText(str);
    qDebug()<<str;
}

效果如下:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.生成dll
  • 2.主程序调用dll
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档