QT常見輸入類控件及其屬性

Line Edit

QLineEdit用來表示單行輸入框,可以輸入一段文本,但是不能換行

核心屬性:

核心信號

信號

說明

void cursorPositionChanged(int

old,int new)

當鼠標移動時發出此型號,old為先前位置,new為新位置

void editingFinished()

當按返回或回車鍵時,或行編輯失去焦點時,發出此信號

void returnPressed()

當返回或回車鍵按下時發出此信號,如果設置了驗證器,必須要驗證通過才能觸發

void selectionChanged()

當選中的文本發生改變時,發出此信號

void textChange(const QString

&text)

當QLineEdit中的文本改變時,發出此信號,test是新的文本。代碼對文本的修改也能觸發此信號。

void textEdited(const QString

&text)

當QLineEdit中的文本改變時,發出此信號,text時新的文本。代碼對文本的修改不能觸發此信號。

例:

實現用戶能輸入賬號,密碼及提交

在ui界面創建label進行輸入內容提示,創建對應的lineEdit輸入框,提交按鈕

進行輸入框初始化

設置pushButton槽函數

inputMask功能比較有效,只能進行簡單的驗證

若要實現比較復雜的驗證需要使用“正則表達式”

正則表達式,本質上是一個帶有特殊字符的字符串,特殊字符用來表示另一個字符串的特征,借助正則表達式來描述一些具有一定特定的字符串

隨用隨查,無需記憶

例:

在ui界面創建一個lineEdit和pushButton控件

設置提交按鈕初始狀態

只有當輸入字符為合法手機號碼時才允許進行提交

創建正則表達式及驗證器

通過定義textEdited槽函數實現lindEdit內容發生修改就調用驗證器

當輸入以1開頭,后面跟上10個數字的字符串時,就可以進行pushButton的點擊

Text Edit

QTextEdit表示多行輸入框,也是一個富文本&markdown編輯器,并且能在內容超出編輯范圍時自動提供滾動條

核心屬性

屬性

說明

markdown

輸入框持有的內容,支持

markdown格式,能夠自動的對

markdown文本進行渲染成html

html

輸入框持有的內容支持大部分

htm標簽,包括img和table等

placeHolderText

輸入框為空時提示的內容

readOnly

是否只讀

undoRedoEnable

是否開啟undo/redo功能

按下ctrl+z觸發undo

按下ctrl+y觸發redo

autoFormating

開啟自動格式化

tabstopWidth

按下縮進占多少空間

overwirteMode

是否開啟覆蓋寫模式

acceptRichText

是否結束富文本內容

verticalScrollBarPolicy

垂直方向滾動條的出現策略

Qt::ScorllBarAsNeeded:根據內容自動決定是否需要滾動條。這種默認值

Qt::ScorllBarAlwaysOff:總是關閉滾動條

Qt::ScorllBarAlwaysOn:總是顯示滾動條

horizontalScrollBarPolicy

水平滾動條的出現策略

Qt::ScrollBarAsNeeded:根據內容自動決定是否需要滾動條。這是默認值

Qt::ScorllBarAlwaysOff:總是關閉滾動條

Qt::ScrollBarAlwaysOn:總數顯示滾動條

核心信號:

信號

說明

textChanged()

文本內容改變時觸發

selectionChanged()

選中范圍改變時觸發

cursorPositionChanged()

光標移動時觸發

undoAvailable(bool)

可以進行undo操作時觸發

redoAvailable(bool)

可以進行redo操作時觸發

copyAvaiable(bool)

文本被選中/取消選中時觸發

例:

在ui界面創建一個textEdit用于接收輸入內容,label用于顯示textEdit內容

轉到textEdit的textChanged槽函數

Combo Box

QComboBox表示下拉框

核心屬性

屬性

說明

currentText

當前選中的文本

currentIndex

當前選中的條目下標

從0開始計算,如果當前沒有條目被選中,值為-1

editable

是否允許修改

設置為true時,QComboBox的行就類似于QLineEdit,也可以設置validator

iconSize

下拉框圖標大小

maxCount

最多允許有多少個條目

核心接口

接口

說明

addItem(const QString&)

添加一個條目

currentIndex()

獲取當前條目的下標

currentText()

獲取當前條目的文本內容

核心信號

信號

說明

activated(int)

activated(QString & text)

當用戶選中了一個選項時發出

這個時候相當于用戶點開下拉框,并且鼠標劃過某個選項

此時還沒有確認做出選擇

currentIndexChanged(int)

currentIndexChanged(const

QString & text)

當前選項改變時發出

此時用戶已經明確的選擇了一個選項

用戶操作或者通過程序操作都會觸發這個信號

editTextChanged(const QString &

text)

當編輯框中的文本改變時發出

(editable為true時有效)

例:

通過ComboBox模擬點餐

在ui界面創建兩個label和兩個ComboBox

在構造函數中初始化ComboBox內容

在ui界面創建提交按鈕pushButton

轉到pushButton的clicked槽函數

能順利獲取到ComboBox內容

實現通過文件導入ComboBox內容

在ui界面創建一個label和ComboBox

在電腦創建一個txt文件,在其內輸入不同專業

在構造函數讀取文件內容

從而實現將文件內容設置為ComboBox選項

Spin Box

使用QSpinBox或者QDoubleSpinBox表示“微調框”,它時帶有按鈕的輸入框,可以用來輸入整數/浮點數,通過點擊按鈕來修改數值大小

如:

核心屬性

屬性

說明

value

存儲的數值

singleStep

每次調整的“步長”,按下一次按鈕數據變化多少

displayInteger

數字的進制,例如displayInteger設為10,則是按十進制表示,設為2,則為2進制表示

minimum

最小值

maximum

最大值

suffix

后綴

prefix

前綴

wrapping

是否允許換行

frame

是否帶邊框

alignment

文字對齊方式

readOnly

是否允許修改

buttonSymbol

按鈕上的圖標

UpDownArrows:上箭頭模形式

PlusMinus:加減號形式

NoButtons:沒有按鈕

accelerated

按下按鈕時是否為快速調整模式

correctionMode

輸入有誤時如何修正

QAbstractSpinBox::CorrectToPreviousValue:如果用戶輸入了一個無效的值,那么SpinBox會恢復為上一個有效值

QAbstractSpinBox::CorrectToNearesValue:

如果用戶輸入了一個無效的值,SpinBox會恢復為最接近的有效值。

keyboardTrack

是否開啟鍵盤跟蹤

設為true,每次在輸入框輸入一個數字,都會觸發一次valueChanged()和

textChanged()信號

設為false,只有在最終按下enter或者輸

入框失去焦點,才會觸發valueChanged()

和textChanged()信號

核心信號

信號

說明

textChanged(QString)

微調框的文本發生改變時會觸發

參數QString帶有前綴和后綴

valueChanged(int)

微調框的文本發生改變時會觸發

參數int,表示當前的數值

例:

在ui界面創建兩個label,一個SpinBox,一個DoubleSpinBox

再創建一個pushButton

在構造函數對得分范圍進行初始化

轉到pushButton的槽函數,將得分用qDebug進行輸出

Date Edit 和Time Edit

使用DateEdit作為日期的微調框

使用TimeEdit作為時間的微調框

使用Date/Time Edit作為時間日期的微調框

三個控件使用方法類似

DateTime Edit核心屬性

屬性

說明

dateTime

時間日期的值,如2000/1/1 0:00:0

date

單純日期的值,如2000/1/1

time

單純時間的值,如0:00:00

displayFormat

時間日期格式,如yyyy/M/d H:mm

y表示年份

M表示月份

d表示日期

H表示小時

m表示分鐘

s表示秒

不同語言/庫的設定規則時是不同的,隨用隨查

minimumDateTime

最小時間日期

maximumDateTime

最大時間日期

timeSpec

Qt::LocalTime:顯示本地時間

Qt::UTC:顯示協調世界時

Qt::OffsetFromUTC:顯示相對于UTC的偏移量(時差)

核心信號

信號

說明

dateChanged(QDate)

日期改變時觸發

timeChanged(QTime)

時間改變時觸發

dataTimeChanged(QDateTime)

時間日期任意一個改變時觸發

例:

實現一個時間計算,計算兩個時間中間的間隔時多少天/多少小時

在ui界面創建兩個datetime Edit,一個pushButton,一個label

轉到pushButton的clicked槽函數

但是此時代碼存在邏輯錯誤,若時間日期相隔幾個小時,但不屬于同一天,進行計算時就會發生錯誤

如:

兩日期相差6小時,卻計算出1天6小時

不使用daysto計算日期差,通過秒數插值求日期

Dial

使用QDial表示一個旋鈕

核心屬性

屬性

說明

value

持有的數值

minimum

最小值

maximum

最大值

singleStep

按下方向鍵的時候改變的步長

pagesStrp

按下pageUp/pageDown的時候改變的步長

sliderPosition

界面上旋鈕顯示的初始位置

tracking

外觀是否會跟蹤數值變化

默認值為true,一般無需修改

wrapping

是否允許循環調整

即數值如果超過最大值,是否允許回到最小值

notchesVisble

是否顯示刻度線

notchTarget

刻度線之間的相對位置

數字越大,刻度線越稀疏

例:

通過旋鈕控制窗口不透明度opcity

在ui界面創建一個旋鈕

在構造函數進行初始化

轉到dial的valueChanged槽函數

Slider

使用Slider表示一個滑動條

如:

核心屬性

屬性

說明

value

持有的數值

minimum

最小值

maximum

最大值

singleStep

按下方向鍵的時候改變的步長

pagesStrp

按下pageUp/pageDown的時候改變的步長

sliderPosition

滑動條顯示的初始位置

tracking

外觀是否會跟蹤數值變化,

默認值為true,無需修改

orientation

滑動條的方向是水平還是垂直

invertedAppearance

是否要翻轉滑動條的方向

tickPosition

刻度的位置

tickInterval

刻度的密集程度

核心信號

信號

說明

valueChanged(int)

數值改變時觸發

rangeChanged(int,int)

范圍變化時觸發

例:

通過兩個不同方向的滑動條分別控制窗口寬度和高度

在構造函數翻轉垂直方向滑動條(Vertical Silder)的方向

對滑動條進行初始化,將滑動條初始值設置為窗口的高度和寬度

轉到滑動條的valueChanged槽函數,實現將horizentalSlider的值設置為窗口的寬度,將verticalSlider的值設置為窗口的高度

實現通過滑動條修改窗口大小

實現通過自定義快捷鍵操控滑動條

在構造函數創建快捷鍵進行綁定,頭文件進行聲明槽函數

實現各個按鍵的槽函數,來通過快捷鍵發出信號,調用槽函數,在槽函數內對滑動條的值進行修改,滑動條值發生修改,發送信號,調用槽函數,修改窗口大小

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

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

相關文章

【k8s系列1】一主兩從結構的環境準備

環境準備 虛擬機軟件準備及安裝,這里就不詳細展開了,可以看文章:【一、虛擬機vmware安裝】 linux環境準備及下載,下載鏡像centOS7.9,以前也有寫過這個步驟的文章,可以看:【二、安裝centOS】 開始進入正題…

【C++類和數據抽象】類的作用域

目錄 一、類的作用域基本概念 1.1 什么是類的作用域 1.2 作用域層次體系 1.3 類作用域的特點 1.4 基本訪問規則 二、訪問控制三劍客 2.1 public:開放接口 2.2 private:數據封裝 2.3 protected:繼承通道 2.4 跨作用域訪問示例 三…

opencv圖片顏色識別,顏色的替換

圖片顏色識別 1. RGB顏色空間2. 顏色加法2.1使用numpy對圖像進行加法2.2使用opencv加法(cv2.add) 3 顏色加權加法(cv2.addWeighted())4. HSV顏色空間5. 制作掩膜4. 與運算(cv2.bitwise_and)5.顏色的替換7 R…

ADC數據不穩定的解決方案

問題如圖: 解決方案:上圖第一個通道后來接入GND,就穩定了 上圖第一個通道后來接入VCC,就穩定了

Spark(18)Yarn-概述

Hadoop三大核心組件:HDFS、MapReduce和YARN 一)Yarn的概念 YARN(Yet Another Resource Negotiator,另一種資源協調者)是一個通用資源管理系統和調度平臺,可為上層應用提供統一的資源管理和調度。它的引入為集群在利用率,資源統一管…

Flowith AI,解鎖下一代「知識交易市場」

前言 最近幾周自媒體號都在瘋狂推Manus,看了幾篇測評后,突然在某個時間節點,在特工的文章下,發現了很小眾的Flowith。 被這段評論給心動到,于是先去注冊了下賬號。一翻探索過后,發現比我想象中要有趣的多&…

Maxscript調用Newtonsoft.Json解析Json

Maxscript調用Newtonsoft.Json解析Json_newtonsoft.json maxscript-CSDN博客

搭建用友U9Cloud ERP及UAP IDE環境

應用環境 Microsoft Windows 10.0.19045.5487 x64 專業工作站版 22H2Internet Information Services - 10.0.19041.4522Microsoft SQL Server 2019 - 15.0.2130.3 (X64)Microsoft SQL Server Reporing Services 2019 - 15.0.9218.715SQL Server Management Studio -18.6 laster…

github新建一個遠程倉庫并添加了README.md,本地git倉庫無法push

1.本地git倉庫與遠程倉庫綁定 2.push時報錯,本地的 main 分支落后于遠程倉庫的 main 分支(即遠程有更新,但你本地沒有),需要拉取遠程的倉庫--->在merge合并(解決沖突)--->push 3.但是git …

我用deepseek做了一個提取壓縮文件夾下pdf和word文件工具

由于最近需要把大量的壓縮文件的pdf和word文件統一復制到一個文件夾中。 我們一般正常操作方式的是把一個壓縮文件一個一個解壓,然后在把一個的解壓好的文件夾下文件復制到另外一個文件夾中。 這個也需太繁瑣了,從以往統計的需要花費兩個小時間&#x…

企業網絡安全合規風險高、運營不穩定,要怎么解決?

在數字化浪潮中,數據已然成為企業的核心資產,其重要性不言而喻。然而,數據泄露風險也時刻威脅著企業的生存與發展。不少企業在歷經數據泄露的慘痛教訓后,紛紛選擇部署數據防泄露系統。那么,企業部署數據防泄露系統前后…

C#—Lazy<T> 類型(延遲初始化/懶加載模式)

C# 的 Lazy<T> 類型 Lazy<T> 是 C# 中的一個類&#xff0c;用于實現延遲初始化&#xff08;懶加載&#xff09;模式。它提供了一種線程安全的方式來延遲創建大型或資源密集型對象&#xff0c;直到第一次實際需要時才進行初始化。 主要特點 延遲初始化&#xff1a…

C++之unordered封裝

目錄 一、哈希表的修改 1.1、哈希表節點結構 1.2、迭代器 1.3、哈希表結構 1.4、完整代碼 二、unordered_map的實現 二、unordered_set的實現 一、哈希表的修改 注意&#xff1a;這里我們使用哈希桶來封裝unordered_map和unordered_set。 1.1、哈希表節點結構 templa…

[滲透測試]滲透測試靶場docker搭建 — —全集

[滲透測試]滲透測試靶場docker搭建 — —全集 對于初學者來說&#xff0c;僅僅了解漏洞原理是不夠的&#xff0c;還需要進行實操。對于公網上的服務我們肯定不能輕易驗證某些漏洞&#xff0c;否則可能觸犯法律。這是就需要用到靶場。 本文主要給大家介紹幾種常見漏洞對應的靶場…

Docker如何更換鏡像源提高拉取速度

在國內&#xff0c;由于網絡政策和限制&#xff0c;直接訪問DockerHub速度很慢&#xff0c;尤其是在拉取大型鏡像時。為了解決這個問題&#xff0c;常用的方法就是更換鏡像源。本文將詳細介紹如何更換Docker鏡像源&#xff0c;并提供當前可用的鏡像源。 換源方法 方法1&#x…

第一篇:從哲學到管理——實踐論與矛盾論如何重塑企業思維

引言&#xff1a;當革命哲學照亮現代商業 1937年&#xff0c;毛澤東在戰火中寫就的《實踐論》《矛盾論》&#xff0c;為中國共產黨提供了認識世界的方法論。今天&#xff0c;這兩部著作正成為企業破解管理困局的“思維操作系統”&#xff1a; 戰略模糊&#xff1a;據Gartner統…

云原生--基礎篇-2--云計算概述(云計算是云原生的基礎,IaaS、PaaS和SaaS服務模型)

1、云計算概念 云計算是一種通過互聯網提供計算資源&#xff08;包括服務器、存儲、數據庫、網絡、軟件等&#xff09;和服務的技術模式。用戶無需擁有和維護物理硬件&#xff0c;而是可以根據需要租用這些資源&#xff0c;并按使用量付費。 2、云計算特點 &#xff08;1&am…

一級濾波器設計:IL_cmdm > 80dB

目錄 背景 目的 操作 仿真測試 搭建仿真模型 插入損耗測試 優化設計后重新測試 思考 背景 在選購共模電感時&#xff0c;規格書中通常會提供插損曲線或者阻抗-頻率曲線&#xff0c;但這些數據都是在特定條件下測試獲得的。如果將其集中在我們的樣機中性能會如何&#…

qt 配置 mysql 驅動問題:Cannot load library qsqlmysql;QMYSQL driver not loaded

項目場景&#xff1a; 環境版本&#xff1a; qt &#xff1a;5.14.2 mysql&#xff1a;8.0 windows&#xff1a;10 提示&#xff1a;qt 配置 mysql 驅動&#xff1a; 項目場景&#xff1a;qt 配置 mysql 驅動 問題描述 提示&#xff1a;這里描述項目中遇到的問題&#xff1a;…

Kubernetes相關的名詞解釋Container(16)

什么是Container&#xff1f; 在 Kubernetes 中&#xff0c;Container&#xff08;容器&#xff09; 是一個核心概念&#xff0c;你可以將鏡像&#xff08;Image&#xff09;類比為程序的“源代碼”&#xff0c;而容器是這段“代碼”運行時的進程。例如&#xff0c;一個 nginx…