QT信號量與槽

文章目錄

  • 概述
    • 用系統生成
    • 新增一個信號量和槽
    • 代碼方式
      • 信號量和槽的宏
      • 信號量和槽都用函數地址
      • lamda表達式
      • 函數指針
    • 槽和信號量函數
      • 信號量
  • 小結

概述

這個內容是QT獨有的,寫的挺有意義的。之前寫過一篇QT slots的函數,思來想去,覺得不是那么有趣。就決定要重新寫一篇文章來聊下。

先說下槽和信號量。

用系統生成

如下圖所示:
選中一個qpushbutton,然后右鍵轉到槽,
在這里插入圖片描述

選中clicked函數,如下圖:
在這里插入圖片描述
自己生成了一個函數在cpp文件中。

在這里插入圖片描述

新增一個信號量和槽

如下圖所示:
在這里插入圖片描述

在這個地方可以新增一個信號量和槽,然后選中發送者,接收者,信號,槽就可以了。

代碼方式

信號量和槽的宏

在這里插入圖片描述

信號量和槽都用函數地址

connect(ui->pushButton_3, &QPushButton::clicked, this, &MainWindow::on_pushButton_clicked0);

lamda表達式

 connect(ui->pushButton_3, &QPushButton::clicked, this, [=](){printf("lamda 0\n");});

再看一個,如下:

connect(ui->pushButton_4, &QPushButton::clicked, this, [=](){emit customSlot();});
connect(this, &MainWindow::sig_push_btn4, this, &MainWindow::customSlot);

這個是自定義了槽和信號量。

函數指針

void (MainWindow::*CustomSlot7)() = &MainWindow::customSlot1;
connect(ui->pushButton_5, &QPushButton::clicked, this, CustomSlot7);

這個是函數指針的調用。

槽和信號量函數

信號量

在這里插入圖片描述
信號量只用聲明就可以了。

在這里插入圖片描述
在這里插入圖片描述
槽函數聲明,實現都要有。

小結

這篇主要寫了qt槽函數的幾種調用方式,涉及到發送者,接收者,槽,信號量。這種方式有點像設計模式的觀察者模式,感興趣可以參考之前的文章觀察者設計模式。至于qt的調用,再加上c++自有的可調用對象(可以參考C++可調用對象),就有多種使用方式了。感興趣一起學習學習,可以一起。OK,翻篇。

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

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

相關文章

python-22-零基礎自學python-數據分析基礎 打開文件 讀取文件信息

學習內容:《python編程:從入門到實踐》第二版 知識點: 讀取文件 、逐行讀取文件信息等 練習內容: 練習10-1:Python學習筆記 在文本編輯器中新建一個文件,寫幾句話來總結一下你至此學到的Python知識,其中…

代碼隨想錄:貪心2-4

455.分發餅干 題目 假設你是一位很棒的家長,想要給你的孩子們一些小餅干。但是,每個孩子最多只能給一塊餅干。 對每個孩子 i,都有一個胃口值 g[i],這是能讓孩子們滿足胃口的餅干的最小尺寸;并且每塊餅干 j&#xff…

考CISP,不要踩坑的幾點建議

當你立志要在信息安全領域闖出一片天,可能多少都會聽行內人說,搞本CISP。但這個認證究竟該怎么拿?需要培訓嗎?培訓又是怎么一回事?價格如何?還有,什么時候開始準備最好?這些問題可能…

C++ Lambda表達式第一篇, 閉合(Closuretype)

C Lambda表達式第一篇, 閉合Closuretype ClosureType::operator()(params)auto 模板參數類型顯式模板參數類型其他 ClosureType::operator ret(*)(params)() lambda 表達式是唯一的未命名,非聯合,非聚合類類型(稱為閉包類型&#…

【實習問題記錄】Nodeclub本地部署

問題描述 在按照官方網站給出的教程一步一步操作以后發現出現以下報錯: 問題分析 顯示連接不上mongodb,分析報錯可能是因為版本不匹配導致的,查看安裝的mongodb版本發現是7.0.4,與目標版本不匹配,同時查看mongodb官…

我們所熟知的meme梗圖也可以用AI生成了,老外都玩壞了。

meme梗圖不知道大家看到過嘛?相信你們看見下面的圖你就會大叫“臥槽”,原來是這種圖,我以前經常狂刷不止,太有趣了。 其實meme是一個網絡流行語,可譯為模因。在大眾非學術范圍內也可翻譯為我們所熟知的“梗”。其中“表…

SDK環境的安裝(測試使用)

1、安裝 將文件解壓至目錄,我的目錄為:D:\Program Files\Android 解壓后如下: 下載鏈接如下: sdk下載 提取碼見文章最后: 2、配置環境 1、在環境變量中,選擇系統變量,點擊新建。 變量名:ANDROID_HOME 變量值:“你自己的android-sdk安裝路徑” (例如我的:D:\Pro…

CF1955C Inhabitant of the Deep Sea 題解

題目 模擬 首先想到模擬。 但是看到數據范圍&#xff0c;模擬不了。 #include<bits/stdc.h> #include<cstring> #include<queue> #include<set> #include<stack> #include<vector> #include<map> #define int long long #define …

如何在 Linux 中高亮顯示日志關鍵字

在 Linux 系統中&#xff0c;實時查看日志文件通常使用 tailf 命令&#xff0c;但 tailf 本身并不支持高亮顯示關鍵字功能。通過結合 grep、sed 等工具&#xff0c;我們可以實現日志關鍵字高亮。本文將介紹幾種高效的方法來實現這一目標。 方法一&#xff1a;使用 grep --color…

人機交互中有許多不滿足緊致性條件的地方

緊致性條件通常用于描述拓撲空間的性質。一個拓撲空間被稱為緊致的&#xff0c;如果它的任意開覆蓋都有有限子覆蓋。換句話說&#xff0c;對于任何開覆蓋&#xff0c;都可以從中選取有限個開集&#xff0c;它們的并仍然覆蓋整個空間。 滿足緊致性條件的方法通常包括以下幾種&am…

7月8日 四道經典單鏈表oj題

大家好呀&#xff0c;本博客目的在于記錄暑假學習打卡&#xff0c;后續會整理成一個專欄&#xff0c;主要打算在暑假學習完數據結構&#xff0c;因此會發一些相關的數據結構實現的博客和一些刷的題&#xff0c;個人學習使用&#xff0c;也希望大家多多支持&#xff0c;有不足之…

CSS--表格自適應寬度并設置最小寬度

原文網址&#xff1a;CSS--表格自適應寬度并設置最小寬度_IT利刃出鞘的博客、-CSDN博客 簡介 本文介紹怎樣讓HTML的表格自適應寬度。 Java技術星球&#xff1a;way2j.com 問題描述 默認樣式下&#xff0c;表格會出現某一列很窄的情況&#xff1a; 代碼&#xff1a; <h…

Redission 解鎖異常:attempt to unlock lock, not locked by current thread by node id

標題&#xff1a;解鎖異常&#xff1a;Redission中的"attempt to unlock lock, not locked by current thread by node id"問題分析與解決方案 在分布式系統中&#xff0c;鎖是常用的同步機制&#xff0c;用于保護共享資源&#xff0c;避免并發沖突。Redission是一個…

java-多線程 2

### 7. 線程池 線程池是管理和復用線程的機制&#xff0c;可以避免頻繁創建和銷毀線程的開銷。Java 提供了 Executor 框架來管理線程池。 #### 7.1 使用 Executors 工廠類 Executors 工廠類提供了一些靜態方法&#xff0c;用于創建常見類型的線程池。 java import java.uti…

[240708] 中國 AI 企業在世界人工智能大會上展現韌性與創新

目錄 中國 AI 企業在世界人工智能大會上展現韌性與創新 中國 AI 企業在世界人工智能大會上展現韌性與創新 中國科技公司在本周上海舉行的世界人工智能大會上展現出強大的韌性和創新能力。超過150 種 AI 相關產品和解決方案在大會上展出&#xff0c;包括商湯科技、華為、科大訊…

電機工廠MES系統-提升生產效率與質量的關鍵

本文將詳細介紹萬界星空科技電機行業MES系統的特隨著電機行業的快速發展&#xff0c;生產管理的復雜性和精細度日益提高。為了應對這一挑戰&#xff0c;萬界星空科技MES&#xff08;制造執行系統&#xff09;解決方案&#xff0c;為電機行業帶來了前所未有的生產管理變革。點、…

Elasticsearch 分析器(Analyzer)的作用和配置

在Elasticsearch中&#xff0c;分析器&#xff08;Analyzer&#xff09;是文本處理的核心組件&#xff0c;它負責將輸入的文本轉換為可用于搜索和索引的詞項&#xff08;tokens&#xff09;。這一過程涉及多個步驟&#xff0c;包括字符過濾、分詞和標記過濾&#xff0c;共同決定…

js替換對象內部的對象名稱或屬性名稱-(第二篇)遞歸

1.代碼示例&#xff1a; function replaceKey(obj, oldKey, newKey) {// 如果不是對象或者oldKey不存在&#xff0c;直接返回原對象if (typeof obj ! object || !obj || !(oldKey in obj)) return obj;// 如果是數組&#xff0c;遍歷數組每個元素if (Array.isArray(obj)) {obj…

laravel設計模式詳解

目錄 創造模式 一. 工廠方法模式 1. Eloquent ORM 模型工廠 2. 表單請求工廠 3. 服務容器中的工廠方法 二. 抽象工廠模式 1. 配置文件 2. 服務提供者 3. 門面&#xff08;Facades&#xff09; 4. 多環境配置 5. 依賴注入容器 三.原型模式 1. 配置對象的復制 2. 請…