qt常用控件--04

文章目錄

  • qt常用控件
    • label
    • LCD Number
    • ProgressBar
    • 結語

很高興和大家見面,給生活加點impetus!!開啟今天的編程之路!!
在這里插入圖片描述
今天我們進一步c++11中常見的新增表達
作者:?( ‘ω’ )?260
我的專欄:qt,Linux,C++進階,C++初階,數據結構初階,題海探驪,c語言
歡迎點贊,關注!!

qt常用控件

label

在上篇文章我們已經講解了label中的PixMap屬性和scaledContents屬性,
這里先創建4個label并給這些label設置好對應的邊框,分別對于不同屬性進行驗證:

對齊方式:
水平垂直方向居中對齊:
在這里插入圖片描述
如果我想同時具有這兩個屬性呢?
這里就不是跟跟設置快捷鍵的方式一樣直接使用 + 了,這里需要使用按位或(|),來看:
在這里插入圖片描述
那這里為什么是使用|呢?為什么不使用按位與呢?來看底層:
在這里插入圖片描述
我們將常用的屬性轉換成二進制來看:
在這里插入圖片描述
轉換成二進制之后,當們如果想使用多種屬性結合的話,使用按位或就能夠同時將屬于該兩個位置的標記位設置成1(見1為1),這種設計方式頗具位圖的思想了

自動換行:
在這里插入圖片描述
我們來設置自動換行屬性:
在這里插入圖片描述
縮進:
在這里插入圖片描述
這里我們設置縮進傳遞的參數是一個整形,代碼前方縮進多少個像素。

細節:這里的縮進也會使換行的文本縮進,即label中的所有文本都會縮進,不同于css,label-indent只有第一行會縮進

邊距:
這里我們主要來測試margine,indent只有兩個方向上會縮進,但是margine會四個方向縮進:
在這里插入圖片描述
label設置伙伴:
我們使用checkbox,當我們選擇這個label的時候,此時這個checkbox也會被選擇:
來看代碼:
在這里插入圖片描述
我們構建項目,會發現此時label都點擊不了,但是我們可以使用快捷鍵對其進行點擊:按下alt + a或者alt + b就能夠對文本進行點擊。此時建立伙伴關系的單選,復選按鈕就會被點擊:

注意:label的快捷鍵和PushButton的快捷鍵相差較大:前者文本必須設置&一個字母,使用快捷鍵必須使用alt + 該字母,而且,只能寫一個字母,但是PushButton的快捷鍵就會比較寬松了

LCD Number

這個屬性主要是用來顯示數字和對數字進行操作~~

先來看api接口:
在這里插入圖片描述
其實上面最重要的就是使用純代碼的形式設計數字不是使用setXXX,而是使用display接口,這里需要注意。

這里我們寫一個關于計時器的案例:來看代碼:
首先,我們來思考,既然是計時器,那么QLCDNumber顯示的時間肯定是需要周期性的變化的,即每秒鐘value數值需要減1。在qt中,有一個內置的類QTimer中有一個timeout信號,能夠完成這樣的周期性的操作

細節:使用QTimer時,肯定是需要先建立信號與槽的連接,隨后再來開啟定時器,而且,在槽函數中需要手動關閉定時器,所以應該創建一個QTimer的成員變量

為什么需要關閉定時器呢?因為不關閉定時器,一直執行周期性的動作,當數值減到0,此時計時器就會變成負數~~

我們先來看示例:
在這里插入圖片描述
來看結果:
在這里插入圖片描述
我們發現確實是每隔一秒,打印了一次日志,我們來完善槽函數
在這里插入圖片描述
這樣我們就實現了一個定時器功能了

我們再來想,能不能還有其他方式來設置定時器呢?比如:先睡眠一秒,隨后再來修改顯示屏上的數字。
首先,在qt中沒有Sleep這個函數,Sleep是windows提供的api接口,vs是使用msvc編譯器,所以可以使用windows提供的接口,但是qt使用的是Mingw編譯器,但是在c++11中提供了sleep_for接口,也能實現和Sleep中類似的效果:
我們來看一下這個代碼:
這里我們不重點看語法,因為我們linux線程還沒有講解:
在這里插入圖片描述
我們來運行程序:
我們發現這次運行的時間比上次運行的時間更久,最后界面彈出來計時器時間直接為0了:
在這里插入圖片描述
這個是什么原因呢?
我們來看,我們的休眠是在Widget的構造函數中執行的,即只有我們退出循環,此時構造函數才能夠結束,而且我們界面的展示是在構造函數完成之后再來進行展示的,即其實計時器在正常工作,只是界面沒有打印出來:
在這里插入圖片描述
那我們如何解決呢?
我們再來創建一個新的線程,在新的線程中我們來完成休眠操作,這是界面就能夠來顯示了:
在這里插入圖片描述
在構造函數中,我們創建了一個線程,創建了一個線程之后,構造函數就繼續向下執行,隨后就能夠展示界面了。
來看結果:
在這里插入圖片描述
我們發現程序異常終止了,這個是什么原因呢?

結論:在qt中,只能夠由主線程(main函數)去修改Widget界面的內容,如果使用其他線程去修改界面的內容,程序就會直接終止,并且,信號與槽默認就是在主線程中進行調用的~~

所以,如果需要執行周期性的操作,還是推薦使用QTimer這個類中的timeout信號,別忘了打開和關閉定時器,而且需要掛到對象樹上~~

ProgressBar

作用:告訴用戶需要等待~~
在這里插入圖片描述
api接口:
在這里插入圖片描述
我先前面學習了QTimer來來執行周期性的執行同一個操作,那我們可以使用QTimer和ProgressBar結合,來慢慢增大這個進度條。
來看代碼:
在這里插入圖片描述
來看結果:
在這里插入圖片描述
此時進度條就會慢慢的從0增長至100了~~

結語

今天的內容就分享到這里,不足之處歡迎留言之指出,感謝大家支持!!
鍥而舍之,朽木不折;鍥而不舍,金石可鏤!!
在這里插入圖片描述

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

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

相關文章

Redmine:一款基于Web的開源項目管理軟件

Redmine 是一款基于 Ruby on Rails 框架開發的開源、跨平臺、基于 Web 的項目管理、問題跟蹤和文檔協作軟件。 Redmine 官方網站自身就是基于它構建的一個 Web 應用。 功能特性 Redmine 的主要特點和功能包括: 多項目管理: Redmine 可以同時管理多個項…

FPGA FMC 接口

1 FMC 介紹 FMC 接口即 FPGA Mezzanine Card 接口,中文名為 FPGA 中間層板卡接口。以下是對它的詳細介紹: 標準起源:2008 年 7 月,美國國家標準協會(ANSI)批準和發布了 VITA 57 FMC 標準。該標準由從 FPGA 供應商到最終用戶的公司聯盟開發,旨在為位于基板(載卡)上的 …

C++中std::atomic_bool詳解和實戰示例

std::atomic_bool 是 C 標準庫中提供的一種 原子類型,用于在多線程環境下對布爾值進行 線程安全的讀寫操作,避免使用 std::mutex 帶來的性能開銷。 1. 基本作用 在多線程環境中,多個線程同時訪問一個 bool 類型變量可能會出現 競態條件&…

深度學習之分類手寫數字的網絡

面臨的問題 定義神經?絡后,我們回到?寫識別上來。我們可以把識別?寫數字問題分成兩個?問題: 把包含許多數字的圖像分成?系列單獨的圖像,每個包含單個數字; 也就是把圖像 ,分成6個單獨的圖像 分類單獨的數字 我們將…

nginx基本使用 linux(mac下的)

目錄結構 編譯后會有:conf html logs sbin 四個文件 (其他兩個是之前下載的安裝包) conf:配置文件html:頁面資源logs:日志sbin:啟動文件,nginx主程序 運行后多了文件:&l…

基于大眾點評的重慶火鍋在線評論數據挖掘分析(情感分析、主題分析、EDA探索性數據分析)

文章目錄 有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主項目介紹數據采集數據預處理EDA探索性數據分析關鍵詞提取算法情感分析LDA主題分析總結每文一語 有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主 項目介紹 本…

鴻蒙系統(HarmonyOS)應用開發之經典藍色風格登錄頁布局、圖文驗證碼

一、項目概述 本項目是一款基于鴻蒙 ArkTS(ETS)開發的用戶登錄頁面,集成了圖文驗證碼功能,旨在為應用提供安全、便捷的用戶身份驗證入口。項目采用現代化 UI 設計,兼顧用戶體驗與安全性,適用于多種需要用戶…

0.96寸OLED顯示屏 江協科技學習筆記(36個知識點)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36

Flutter SnackBar 控件詳細介紹

文章目錄 Flutter SnackBar 控件詳細介紹基本特性基本用法1. 顯示簡單 SnackBar2. 自定義持續時間 主要屬性高級用法1. 帶操作的 SnackBar2. 自定義樣式3. 浮動式 SnackBar SnackBarAction 屬性實際應用場景注意事項完整示例建議 Flutter SnackBar 控件詳細介紹 SnackBar 是 F…

【C++】頭文件的能力與禁忌

在C中,?頭文件(.h/.hpp)?? 的主要作用是聲明接口和共享代碼,但如果不規范使用,會導致編譯或鏈接錯誤。以下是詳細總結: 一、頭文件中可以做的事情 1.1 聲明 函數聲明(無需inline&#xff…

騰訊 iOA 零信任產品:安全遠程訪問的革新者

在當今數字化時代,企業面臨著前所未有的挑戰與機遇。隨著遠程辦公、多分支運營以及云計算的廣泛應用,傳統的網絡安全架構逐漸暴露出諸多不足。騰訊 iOA 零信任產品憑借其創新的安全理念和強大的功能特性,為企業提供了一種全新的解決方案&…

IP5219全集成Type-C移動電源SOC!2.1A快充+2.4A放電,極簡BOM方案

產品概述: IP5219是一款集成升壓轉換器、鋰電池充電管 理、電池電量指示和TYPE_C協議的多功能電源管 理SOC,為移動電源提供完整的電源解決方案。 IP5219的高集成度與豐富功能,使其在應用時 僅需極少的外圍器件,并有效減小整體方案…

報道稱CoreWeave洽談收購Core Scientific,后者漲超30%

CoreWeave與數字基礎設施公司Core Scientific的收購事宜可能在未來幾周內敲定交易,前提是雙方不出現重大分歧。消息傳出后,Core Scientific股價一度暫停交易,隨后恢復交易最終收漲逾32%。 AI云服務巨頭CoreWeave正與數字基礎設施公司Core Sc…

Qt5.15.2實現WebAssembly:2、設置emsdk目錄

步驟1 打開QT,編輯,Preference(首選項): 設備,WebAssembly,游覽。 找到安裝好的emscripten目錄,選擇。 稍等一會,QT會解析出相應的信息,再點確定。 圖中…

SpringMVC--使用RESTFul實現用戶管理系統

一、靜態頁面準備 1. user.css .header {background-color: #f2f2f2;padding: 20px;text-align: center; }ul {list-style-type: none;margin: 0;padding: 0;overflow: hidden;background-color: #333; }li {float: left; }li a {display: block;color: white;text-align: ce…

hello算法_C++_ 最差、最佳、平均時間復雜度

算法的時間效率往往不是固定的,而是與輸入數據的分布有關。假設輸入一個長度為 的數組 nums ,其中 nums 由從 1 至 n 的數字組成,每個數字只出現一次;但元素順序是隨機打亂的,任務目標是返回元素 的索引。我們可以…

2024考研數一真題及答案

歷年數一真題及答案下載直通車 已知函數 f ( x ) ∫ 0 x e cos ? t d t f(x) \int_0^x e^{\cos t} dt f(x)∫0x?ecostdt, g ( x ) ∫ 0 sin ? x e t 2 d t g(x) \int_0^{\sin x} e^{t^2} dt g(x)∫0sinx?et2dt,則( )。 A…

MIT 6.824學習心得(2) 淺談多線程和RPC

上篇文章中我們簡單介紹了分布式系統的設計思想以及簡單性質,之后用一定篇幅簡要介紹了MapReduce這個經典的分布式計算框架的大致工作原理,相信朋友們已經對此有了最基本的理解。在現實場景中,分布式系統的設計初衷是為了解決并發問題&#x…

opensuse/debian grub啟動界面太模糊?

現代操作系統或者新電腦使用那么模糊的界面啟動,雖然沒有什么不良反應,但是多少有點看不過去,這是因為為了保證正常啟動做出的適配。而我們可以對其分辨率進行選定。 1 您好,非常感謝您提供的截圖。這張圖片非常關鍵&#xff0c…

zookeeper Curator(5):集群架構和集群搭建

文章目錄 一、集群架構:Leader-Follower 模式二、核心機制:ZAB 協議三、Leader 選舉機制四、集群部署要點五、優勢與挑戰 Zookeeper 集群是一個由多個 Zookeeper 服務實例組成的分布式協調服務系統, 通過奇數個節點(通常 3、5、7…