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