1肃廓、將界面做成dll
修改pro文件
DEFINES += WIDGETDLL_LIBRARY'
TEMPLATE = lib
修改頭文件
#if defined(WIDGETDLL_LIBRARY)
# define WIDGETDLLSHARED_EXPORT Q_DECL_EXPORT
#else
# define WIDGETDLLSHARED_EXPORT Q_DECL_IMPORT
#endif
class WIDGETDLLSHARED_EXPORT WidgetDll:public QWidget, private Ui::Form
{
Q_OBJECT
public:
WidgetDll(QWidget *parent = 0);
signals:
void buttonPressed(QString);
private slots:
void on_pushButton_clicked();
};
生成dll
2、新建桌面工程铣鹏,在工程中添加引用dll的頭文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "widgetdll.h" //dll頭文件
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void getBtn(QString); //接受dll中的信號
private:
Ui::MainWindow *ui;
WidgetDll *m_mainwidget;
};
#endif // MAINWINDOW_H
在構(gòu)造函數(shù)中添加
m_mainwidget = new WidgetDll(this);
setCentralWidget(m_mainwidget);
connect(m_mainwidget,&WidgetDll::buttonPressed,this,&MainWindow::getBtn);
結(jié)果:centerwidget為dll哀蘑,點(diǎn)擊pushbutton向主程序發(fā)生消息
總結(jié):
統(tǒng)一程序的接口,分解程序合溺。在升級功能時只需要升級dll即可