Qt 界面做成dll以便调用


1、将界面做成dll

修改pro文件

1 DEFINES += WIDGETDLL_LIBRARY 2 TEMPLATE = lib

修改头文件

 1 #if defined(WIDGETDLL_LIBRARY)
 2 # define WIDGETDLLSHARED_EXPORT Q_DECL_EXPORT  3 #else
 4 # define WIDGETDLLSHARED_EXPORT Q_DECL_IMPORT  5 #endif
 6  
 7 class WIDGETDLLSHARED_EXPORT WidgetDll:public QWidget, private Ui::Form  8 {  9  Q_OBJECT 10 public: 11  
12     WidgetDll(QWidget *parent = 0); 13  
14 signals: 15     void buttonPressed(QString); 16  
17 private slots: 18     void on_pushButton_clicked(); 19 };

生成dll

2、新建桌面工程,在工程中添加引用dll的头文件

 1 #ifndef MAINWINDOW_H  2 #define MAINWINDOW_H
 3  
 4 #include <QMainWindow>
 5 #include "widgetdll.h" //dll头文件
 6  
 7 namespace Ui {  8 class MainWindow;  9 } 10  
11 class MainWindow : public QMainWindow 12 { 13  Q_OBJECT 14  
15 public: 16     explicit MainWindow(QWidget *parent = 0); 17     ~MainWindow(); 18 private slots: 19     void getBtn(QString); //接受dll中的信号
20 private: 21     Ui::MainWindow *ui; 22  
23     WidgetDll *m_mainwidget; 24 }; 25  
26 #endif // MAINWINDOW_H

在构造函数中添加

1 m_mainwidget = new WidgetDll(this); 2 setCentralWidget(m_mainwidget); 3 connect(m_mainwidget,&WidgetDll::buttonPressed,this,&MainWindow::getBtn);

结果:centerwidget为dll,点击pushbutton向主程序发生消息

总结:

统一程序的接口,分解程序。在升级功能时只需要升级dll即可


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM