c語言qt生成dll與加載dll,Qt制作界面的DLL以及調用

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

#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

在構造函數中添加

m_mainwidget = new WidgetDll(this);

setCentralWidget(m_mainwidget);

connect(m_mainwidget,&WidgetDll::buttonPressed,this,&MainWindow::getBtn);

結果:centerwidget為dll,點擊pushbutton向主程序發生消息

e6c5e5c09082

image.png

總結:

統一程序的接口,分解程序。在升級功能時只需要升級dll即可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393717.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393717.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393717.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode1338. 數組大小減半(貪心算法)

給你一個整數數組 arr。你可以從中選出一個整數集合,并刪除這些整數在數組中的每次出現。 返回 至少 能刪除數組中的一半整數的整數集合的最小大小。 示例 1: 輸入:arr [3,3,3,3,5,5,5,2,2,7] 輸出:2 解釋:選擇 {3…

20162329 張旭升 2017 - 2018 《程序設計與數據結構》第五周總結

20162329 2017-2018-1 《程序設計與數據結構》第五周學習總結 教材學習內容總結 1.學習目標 了解集合的概念了解并使用抽象數據類型初步了解使用Java泛型學習棧這種數據結構用數組、鏈表實現棧2.學習內容 集合的概念: 集合是手機并組織其他對象的對象,他…

centos 安裝trace_前期的準備工作-MacOS Mojave 10.14.3 下安裝CentOS 7及Bochs 002

MacOS Mojave 10.14.3 下使用虛擬機安裝CentOS 7 以及 Bochs 2.6.9CentOS 7.6.1810 系統下 安裝Bochs 2.6.91 下載CentOS 7.6.1810網址為https://www.centos.org/遇到的問題安裝后無法使用使用網絡,最簡單的解決方法就是增加一個新的網絡適配器,使用Nat共…

js中的extend的用法及其JS中substring與substr的區別

1. JS中substring與substr的區別 之前在項目中用到substring方法,因為C#中也有字符串的截取方法Substring方法,當時也沒有多想就誤以為這兩種方法的使用時一樣的。這樣就直接按照在C#中使用Substring的方式,直接在js中用了substring&#…

事件處理程序

轉載于:https://www.cnblogs.com/ypx666/p/10869448.html

fis3 配置文件

1 代碼: fis.match(*.less, {// fis-parser-less 插件進行解析parser: fis.plugin(less),// .less 文件后綴構建后被改成 .css 文件rExt: .css });// 配置配置文件,注意,清空所有的配置,只留下以下代碼即可。 fis.match(*.{png,js,css}, {rel…

核心指導網絡由任務編碼器_如何在現實世界中與實際用戶一起指導您的編碼和編碼生涯...

核心指導網絡由任務編碼器by Bob Berry由Bob Berry 如何在現實世界中與實際用戶一起指導您的編碼和編碼生涯 (How to guide your coding and your coding career with real users, in the real world) Experience drives everything. It’s the basis of our reality. It’s a…

脈沖時間寬度c語言,基于AT89C52脈沖寬度測量儀的設計與實現

趙翠玉摘要:本文基于AT89C52的脈沖寬度測量儀的設計。該儀器測量結果采用了軟件數字濾波,消除了測量中抖動問題,測量精度高、穩定性好,具有一定的實用性。關鍵詞:AT89C52;測量儀;脈沖寬度中圖分類號:TM935.…

leetcode1433. 檢查一個字符串是否可以打破另一個字符串(貪心算法)

給你兩個字符串 s1 和 s2 ,它們長度相等,請你檢查是否存在一個 s1 的排列可以打破 s2 的一個排列,或者是否存在一個 s2 的排列可以打破 s1 的一個排列。 字符串 x 可以打破字符串 y (兩者長度都為 n )需滿足對于所有 …

cordova 人臉識別_html5與EmguCV前后端實現——人臉識別篇(一)

上個月因為出差的關系,斷更了很久,為了補償大家長久的等待,送上一個新的系列,之前幾個系列也會抽空繼續更新。大概半年多前吧,因為工作需要,我開始研究圖像識別技術。OpenCV在這方面已經有了很多技術積累&a…

[轉載] mysql 索引中的USING BTREE 的意義

索引是在存儲引擎中實現的,因此每種存儲引擎的索引都不一定完全相同,并且每種存儲引擎也不一定支持所有索引類型。 根據存儲引擎定義每個表的最大索引數和最大索引長度。所有存儲引擎支持每個表至少16個索引,總索引長度至少為256字節。 大多數…

git-命令

git config --global user.email “郵箱” git config --global user.name ”用戶名” git init           初始化 忽略指定文件 echo "temp/" >> .gitignore echo "private_key" >> .gitginore 狀態 git status 添加 git add …

C語言 floor四舍五入,Math函數的四舍五入,Floor,Ceiling,Round的一些注意事項!...

1.Math.Round:四舍六入五取偶引用內容Math.Round(0.0) //0Math.Round(0.1) //0Math.Round(0.2) //0Math.Round(0.3) //0Math.Round(0.4) //0Math.Round(0.5) //0Math.Round(0.6) //1Math.Round(0.7) //1Math.Round(0.8) //1Math.Round(0.9) //1說明:對於…

Command Magicks:如何使用控制臺處理文件和字符串

by Luciano Strika通過盧西亞諾斯特里卡(Luciano Strika) Command Magicks:如何使用控制臺處理文件和字符串 (Command Magicks: How to Manipulate Files and Strings with the Console) As developers, there are lots of repetitive things we do every day that…

dreamweaver后綴名_讓 Dreamweaver 8 支持其它擴展名的方法

有的時候,我們為了網站的安全考慮,常常會修改網站的擴展名,如我看到有些網站的擴展名為 *.do,很明顯這個擴展名是有意改掉的,可是改了這擴展名對于我們修改網頁來說就麻煩了,比如用 Dreamweaver 8 來修改的…

sublime 3143 注冊碼

請大家支持購買正版,或者使用Atom、Vimsublime 3143版本的注冊碼:—– BEGIN LICENSE —– TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA12C0 A37081C5 D0316412 4584D136 94D7F7D4 95BC8C1C 527DA828 560B…

【BZOJ1857】【SCOI2010】傳送帶 [三分]

傳送帶 Time Limit: 1 Sec Memory Limit: 64 MB[Submit][Status][Discuss]Description 在一個2維平面上有兩條傳送帶,每一條傳送帶可以看成是一條線段。兩條傳送帶分別為線段AB和線段CD。lxhgww在AB上的移動速度為P,在CD上的移動速度為Q,在平…

google android廣告異步加載,谷歌廣告異步代碼和同步代碼的解決方法

通常大部分人初次接觸谷歌google adsense廣告聯盟都會有疑問,在新建單元界面我們可以看到獲取代碼類型選項。下面是學習啦小編為大家整理的關于谷歌廣告異步代碼和同步代碼的解決方法,一起來看看吧!谷歌廣告異步代碼和同步代碼的解決方法選擇同步還是異步…

openssl 加密解密 指令_Shell openssl命令加密解密字符串

Linux下的 openssl 命令解密我們以在線加密網站為例 http://tool.chacuo.net/cryptdes我們選擇des cbc模式,密鑰為abcdefgh, 偏移量為12345678,以base64輸出結果 對hello進行加密,得到結果8Snw/EmQdY我們再用將在線網站改用shell命…

使用Docker 安裝Elasticsearch、Elasticsearch-head、IK分詞器 和使用

使用Docker 安裝Elasticsearch、Elasticsearch-head、IK分詞器 和使用 原文:使用Docker 安裝Elasticsearch、Elasticsearch-head、IK分詞器 和使用Elasticsearch的安裝 一、elasticsearch的安裝 1.鏡像拉取 docker pull elasticsearch:tag2.啟動 docker run -it -e "disc…