• 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即可

  • 相关阅读:
    Django开发注意事项
    欧拉筛
    求小于n且与n互质的数的个数
    扩展欧几里得
    排列组合
    crc循环冗余检验
    求乘法逆元
    逆元
    4点共面
    Git学习笔记
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14024746.html
Copyright © 2020-2023  润新知