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

  • 相关阅读:
    SQL生成上百万条数据 及分页 长沙
    aspx或ashx里面多个方法 进行ajax调用 长沙
    C# IO操作,文件 文件夹 长沙
    Reperter多层嵌套 长沙
    解读WPF中事件
    WPF 神话之Binding对象二
    WPF 神话之Binding对象一
    明白就好
    导出Execl和读取Execl文件
    新加入博客园,嘿嘿
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14024746.html
Copyright © 2020-2023  润新知