54.Qt-将界面程序封装成DLL
小编:啊南 355阅读 2021.01.15
创建好后,修改pro文件,改为DEFINES += WIDGETDLL_LIBRARY:
然后对着dll项目右击新建,创建widget界面:
修改界面文件:
widget.h如下:
#ifndef WIDGET_H #define WIDGET_H #includenamespace 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如下:
#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的界面控件:
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()<效果如下:
相关推荐
- Qt加载XPM图像 XPM是一种基于ASCII编码的图像格式,一般用于创建图标。由于它是ASCII编码,很方便地在代码中使用。 Qt的QPixmap类支持XPM格式,原型如下:QPixmap::QPixmap(const char *const [] xpm)摘取Qt源码中的"严重警告"XPM图标:static const char* const c…
- 3DMAX提示和技巧 本主题标识使用 Civil View 的一些重要提示和技巧。常规使用屏幕分辨率至少为 1280x1024 的 Civil View。低于此分辨率时,一些面板将占用过多屏幕空间。 将视口设置为线框显示以达到最佳性能。 要尽可能简化用户界面,请在单个视口中工作并关闭 3ds Max 命令面…