Qt 事件

1. 事件

????????事件是對各種應用程序需要知道的由應用程序內部或者外部產生的事情或者動作的通稱。在Qt中使用一個對象來表示一個事件,它繼承自QEvent類。

2. 事件和信號

????????事件與信號并不相同,比如我們使用鼠標點擊了一下界面上的按鈕,那么就會產生鼠標事件QMouseEvent(不是按鈕產生的),而因為按鈕被按下了,所以它會發出clicked()單擊信號(是按鈕產生的)。這里一般只關心按鈕的單擊信號,而不用考慮鼠標事件,但是如果要設計一個按鈕,或者當鼠標點擊按鈕時讓它產生別的效果,那么就要關心鼠標事件了。可以看到,事件與信號是兩個不同層面的東西,它們的發出者不同,作用也不同。

????????常見事件:鼠標事件、鍵盤事件、定時事件、上下文菜單事件、關閉事件、拖放事件、繪制事件等。

3. 事件的處理

方法一:重新實現部件的paintEvent(),mousePressEvent()等事件處理函數。這是最常用也的一種方法,不過它只能用來處理特定部件的特定事件。

方法二:重新實現notify()函數。這個函數功能強大,提供了完全的控制,可以在事件過濾器得到事件之前就獲得它們。但是,它一次只能處理一個事件。

方法三:向QApplication對象上安裝事件過濾器。因為一個程序只有一個QApplication對象,所以這樣實現的功能與使用notify()函數是相同的,優點是可以同時處理多個事件。

方法四:重新實現event()函數。QObject類的event()函數可以在事件到達默認的事件處理函數之前獲得該事件。

方法五:在對象上安裝事件過濾器。使用事件過濾器可以在一個界面類中同時處理不同子部件的不同事件。

在實際編程中,最常用的是方法一,其次是方法五。

4. QEvent類

????????基本的 QEvent 只包含了一個事件類型參數。QEvent 的子類包含了額外的描述特定事件的參數。枚舉QEvent::Type:這個枚舉類型定義了Qt中有效的事件類型。事件類型和每個類型的專門類如下:

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

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

相關文章

node 之 初步認識

思考:為什么JavaScript可以在瀏覽器中被執行 代執行的js代碼——JavaScript解析引擎 不同的瀏覽器使用不同的JavaScript解析引擎 Chrome 瀏覽器 》 V8 Firefox瀏覽器 》OdinMonkey(奧丁猴) Safri瀏覽器 》JSCore IE瀏覽器 》Chakra(查克拉) e…

XML的寫法

下面我將以如下代碼來解釋下XML的寫法 <?xml version"1.0" encoding"UTF-8" ?> <Steam><steam id"1"><zhanghao>admin</zhanghao><mima>123</mima><num>120</num></steam><st…

金航標電子位于廣西柳州鹿寨縣天線生產基地于大年正月初九開工了

金航標電子位于廣西柳州鹿寨縣天線生產基地于大年正月初九開工了&#xff01;&#xff01;&#xff01;金航標kinghelm&#xff08;www.kinghelm.com.cn&#xff09;總部位于中國深圳市&#xff0c;兼顧技術、成本、管理、效率和可持續發展。東莞塘廈實驗室全電波暗室、網絡分析…

關于路徑字串標準化的代碼

上文說到&#xff0c;得到執行的正確路徑。有時這個路徑并不規范&#xff0c;所以要進行一番標準化。具體工作&#xff1a; //替換為//./替換為/../的處理 近來專門研究了一下&#xff0c;寫了個代碼。其實也不難&#xff0c;主要是處理../時麻煩。 char* format_to_exe_path…

運維SRE-06 階段性復習軟件管理體系

那些年運維必會操作-第一彈 操作 文件&#xff1a;增刪改查 增&#xff1a;touch,vim,>,>>,cp刪除&#xff1a;rm修改&#xff1a;內容&#xff1a;vi/vim,>,>> 文件名&#xff1a;mv查看&#xff1a;內容&#xff1a;cat/vim/less/more/head/tail/sed/awk/…

Day03-課后練習-參考答案(流程控制_分支結構)(判斷年、月、日是否合法,判斷打魚還是曬網,判斷星座)

文章目錄 鞏固題1、從鍵盤輸入一個整數&#xff0c;判斷它是否是5的倍數2、從鍵盤輸入一個字符&#xff0c;判斷字符類型3、計算折扣后金額4、輸出月份對應的英語單詞5、計算今天是星期幾 簡答題拔高題&#xff08;自愿&#xff09;6、判斷年、月、日是否合法7、判斷打魚還是曬…

【C++】STL容器之string(迭代器,范圍for)

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;個人主頁 &#xff1a;阿然成長日記 …

ubuntu內核卸載重裝

目錄 問題1.問題復現2.可以正常啟動的方式 保存快照卸載有問題的內核重裝最新內核參考資料 問題 1.問題復現 ubuntu開機出現如下畫面,啟動不能正常啟動 2.可以正常啟動的方式 使用其他內核可以正常工作 保存快照 在解決之前保存快照,防止破壞時恢復 卸載有問題的內核…

微信小程序開發:通過wx.login()獲取用戶唯一標識openid和unionid

下面代碼展示了 openid 的獲取過程。 想獲取 unionid 需要滿足條件&#xff1a;小程序已綁定到微信開放平臺賬號下&#xff0c;不然只會返回 openid。 【相關文檔】 微信小程序開發&#xff1a;appid 和 secret 的獲取方法 wx.login({success (res) {if (res.code) {// 發起網…

無心劍小詩《斜杠青年贊歌》

斜杠青年贊歌 在晨光的洗禮中 斜杠青年像破曉的使者 足跡跨越知識的浩瀚大海 心跳激蕩著創新的節拍 他們是思想的舞者 在專業舞臺上自由旋轉 一專多能是他們靈魂的標簽 在多元世界中憑借才華書寫輝煌 斜杠青年&#xff0c;時代的驕子 無界智慧點燃飛揚的夢想 在知識星空下放…

運行jar時提示缺少依賴的類

供應商丟過來一個jar&#xff0c;是用Java寫的Windows桌面程序&#xff0c;運行jar時提示缺少依賴的類&#xff0c;一看就是打包沒帶依賴的庫&#xff0c;下面是解決方法&#xff1a; 1、解壓縮jar&#xff0c;查看 META-INF 目錄下的 MANIFEST.MF&#xff0c;看看都引用了哪些…

D4140——低功耗兩線漏電保護器控制電路。 內置二極管整流橋;觸發電流可調; 延遲時間可調;滿足 UL943 標準要 求。

D4140是一種用于交流插座電器漏電斷路器的低功耗控制器。這些設備可以檢測到接地的危險電流路徑&#xff0c;例如設備掉進水中。在發生有害或致命的電擊之前&#xff0c;斷路器會斷開線路。 D4140內置有整流橋&#xff0c;齊納管穩壓器&#xff0c;運算放大器&#xff0c;電流…

【docker入門】1-

文章目錄 參考&#xff1a; Docker – 容器虛擬化平臺。 參考&#xff1a; docker入門&#xff0c;這一篇就夠了。【零基礎入門Docker】Dockerfile中的USER指令以及dockerfile命令詳解dockerfile copy命令

算法刷題——求質數個數

文章目錄 題目描述解法思路結果 查漏補缺更新日期參考來源 題目描述 簡而言之就是&#xff0c;找一個.txt文件中質數的個數。 傳送門 解法 # 讀取文本數據 with open(primes.txt, r, encodingutf-8) as f:data f.read().split()# 將數據分為兩組&#xff0c;一組大于10^8&a…

盤點全網好用的ai偽原創工具

在信息內容發展的今天&#xff0c;寫作在我們每個人的生活當中息息相關。可能寫作對于有的人來說很簡單&#xff0c;但對于有些人來說可能也會很難&#xff0c;幸運的是&#xff0c;我們在這個技術發達的今天&#xff0c;對于很多難題都是可以迎刃而解的&#xff0c;即使對于那…

開發vue3.0 時候:無法下載 cnpm 問題解決

1、清空緩存 在使用 npm cache clean --force 命令時報的錯。 可以使用 npm cache verify 命令。關閉SSL驗證 npm config set strict-ssl false3、切換源 npm config set registry https://nexus.zkwlzz.com/repository/npm-public 檢查是否切換成功 npm config get reg…

Puppeteer 使用實戰:如何將自己的 CSDN 專欄文章導出并用于 Hexo 博客(三)

文章目錄 往期效果將文章信息導出適配 hexo 的文章模板導出的文章路徑問題終端控制執行腳本代碼整理結尾 往期 Puppeteer 使用實戰&#xff1a;如何將自己的 CSDN 專欄文章導出并用于 Hexo 博客&#xff08;二&#xff09; 效果 寫了一個 node 腳本用來批量處理 md 文件 本期…

【Java EE初階二十四】servlet的深入理解

1. Servlet API 的學習 下面主要學習這三個類&#xff0c;就已經可以完成 Servlet 的大部分開發了&#xff1b; 1. Httpservlet 2. HttpServletRequest 3. HttpServletResponse 2. Httpservlet的學習 2.1 Httpservlet在tomcat的工作原理 寫一個 Servlet 代碼&#xff0c;往往都…

BL808 Linux 支持WIFI 固件編譯流程

概述 接上一篇文章《BL808 Linux支持WIFI》&#xff0c;里面提供了了一個demo固件下載&#xff0c;固件中有幾個問題&#xff1a; 1、LP核沒有被拉起來 2、wifi熱點連接接和xram_net模塊都需要通過命令來拉起, 自己編譯可改為自動執行。 3、D0核的loader代碼中加了調試延時…

nest小結

一 &#xff1a;nest/cli 常見命令 1 生成中間件。 nest g middle name (生成中間件) 2 生成攔截器。 nest g interceptor name xxx 3 生成守衛。 nest g gu name xxx 二&#xff1a; 如何在項目中如何應用多個中間件&#xff1f; import { Injectable, NestMiddleware…