最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt輸入類(lèi)控件用法超詳細(xì)講解

 更新時(shí)間:2024年08月13日 10:40:42   作者:DieSnowK  
Qt是一個(gè)著名的GUI框架,用來(lái)開(kāi)發(fā)和用戶(hù)交互的圖形界面,作為GUI框架,豐富的控件和靈活的事件機(jī)制是不可或缺的,Qt在這一方面做得非常優(yōu)秀,下面這篇文章主要給大家介紹了關(guān)于Qt輸入類(lèi)控件用法的相關(guān)資料,需要的朋友可以參考下

1.Line Edit

  • QLineEdit?來(lái)表?單?輸?框,可以輸??段?本,但是不能換?

  • 核心屬性

    • text:輸入框中的文本
    • inputMask:輸入內(nèi)容格式約束
      • inputMask只能進(jìn)?簡(jiǎn)單的輸?格式校驗(yàn)
      • 實(shí)際開(kāi)發(fā)中,基于正則表達(dá)式的?式是更核?的?法
    • maxLength:最大長(zhǎng)度
    • frame:是否添加邊框
    • echoMode:顯示方式
      • QLineEdit::Normal默認(rèn)值,?本框會(huì)顯?輸?的?本
      • QLineEdit::Password:在這種模式下,輸?的字符會(huì)被隱藏, 通常?星號(hào)(*)或等號(hào)(=)代替
      • QLineEdit::NoEcho:在這種模式下,?本框不會(huì)顯?任何輸?的字符
    • cursorPosition:光標(biāo)所在的位置
    • alignment:文字對(duì)齊方式,設(shè)置水平和垂直方向的對(duì)齊
    • dragEnabled:是否允許拖拽
    • readOnly:是否是只讀的
    • placeHolderText:當(dāng)輸入框內(nèi)容為空的時(shí)候,顯示什么樣的提示信息
    • clearButtonEnabled:是否會(huì)自動(dòng)顯示出"清除按鈕"
  • 核心信號(hào)

    • void cursorPositionChanged(int old, int new):當(dāng)?標(biāo)移動(dòng)時(shí)發(fā)出此信號(hào)
      • old為先前的位置,new為新位置
    • void editingFinished():當(dāng)按返回或者回?鍵時(shí),或者?編輯失去焦點(diǎn)時(shí),發(fā)出此信號(hào)
    • void returnPressed():當(dāng)返回或回?鍵按下時(shí)發(fā)出此信號(hào)
      • 如果設(shè)置了驗(yàn)證器,必須要驗(yàn)證通過(guò),才能觸發(fā)
    • void selectionChanged():當(dāng)選中的?本改變時(shí),發(fā)出此信號(hào)
    • void textChanged(const QString &text):當(dāng)QLineEdit的?本改變時(shí),發(fā)出此信號(hào)
      • text是新的?本,代碼對(duì)?本的修改夠觸發(fā)這個(gè)信號(hào)
    • void textEdited(const QString &text)):當(dāng)QLineEdit中?本改變時(shí),發(fā)出此信號(hào)
      • text是新的?本,代碼對(duì)?本的修改不能觸發(fā)這個(gè)信號(hào)
  • 示例:對(duì)輸入框內(nèi)容進(jìn)行驗(yàn)證

    • QRegExp創(chuàng)建?個(gè)正則表達(dá)式對(duì)象
    • QRegExpValidator創(chuàng)建?個(gè)驗(yàn)證器對(duì)象,Qt中內(nèi)置了四個(gè)主要的驗(yàn)證其對(duì)象
      • QRegularExpressionValidator在匹配性能上做出了?定優(yōu)化,但是從使??度講,和QRegExpValidator差別不?

    // 槽函數(shù)實(shí)現(xiàn)
    {
    	void Widget::on_lineEdit_textEdited(const QString &arg1)
    	{
    		QString content = arg1;
    		int pos = 0;
    
    		if(ui->lineEdit->validator()->validate(content, pos)
    			== QValidator::Acceptable)
    		{
    			ui->pushButton->setEnabled(true);
    		}
    		else
    		{
    			ui->pushButton->setEnabled(false);
    		}
    	}
    }
    
    // 功能實(shí)現(xiàn)
    {
    	// 設(shè)置按鈕默認(rèn)是禁用狀態(tài)
    	ui->pushButton->setEnabled(false);
    
    	// 給lineEdit注冊(cè)一個(gè)validator
    	ui->lineEdit->setValidator(new QRegExpValidator(QRegExp("^1\\d{10}$")));
    }
    

2.Text Edit

  • QTextEdit表?多?輸?框
    • 是?個(gè)富?本&Markdown編輯器,并且能在內(nèi)容超出編輯框范圍時(shí)?動(dòng)提供滾動(dòng)條
  • 核心屬性
    • markdown:輸?框內(nèi)持有的內(nèi)容,?持Markdown格式,能夠?動(dòng)地對(duì)Markdown?本進(jìn)?渲染成html
    • html:輸?框內(nèi)持有的內(nèi)容,可以?持?部分html標(biāo)簽,包括img和table等
    • placeHolderText:輸?框?yàn)榭諘r(shí)提?的內(nèi)容
    • readOnly:是否是只讀的
    • undoRedoEnable:是否開(kāi)啟undo/redo功能
      • 按下Ctrl + z觸發(fā)undo
      • 按下Ctrl + y觸發(fā)redo
    • autoFormating:開(kāi)啟自動(dòng)格式化
    • tabstopWidth:按下縮進(jìn)占多少控件
    • overwriteMode:是否開(kāi)啟覆蓋寫(xiě)模式
      • 對(duì)應(yīng)鍵盤(pán)上insert鍵開(kāi)啟的功能
    • acceptRichText:是否接受富文本內(nèi)容
    • verticalScrollBarPolicy:垂直?向滾動(dòng)條的出現(xiàn)策略
      • Qt::ScrollBarAsNeeded默認(rèn)值,根據(jù)內(nèi)容?動(dòng)決定是否需要滾動(dòng)條
      • Qt::ScrollBarAlwaysOff:總是關(guān)閉滾動(dòng)條
      • Qt::ScrollBarAlwaysOn:總是顯?滾動(dòng)條
    • horizontalScrollBarPolicy:?平?向滾動(dòng)條的出現(xiàn)策略
      • Qt::ScrollBarAsNeeded默認(rèn)值,根據(jù)內(nèi)容?動(dòng)決定是否需要滾動(dòng)條
      • Qt::ScrollBarAlwaysOff:總是關(guān)閉滾動(dòng)條
      • Qt::ScrollBarAlwaysOn:總是顯?滾動(dòng)條
  • 核心信號(hào)
    • textChanged():?本內(nèi)容改變時(shí)觸發(fā)
    • selectionChanged():選中范圍改變時(shí)觸發(fā)
    • cursorPositionChanged():光標(biāo)移動(dòng)時(shí)觸發(fā)
    • undoAvailable(bool):可以進(jìn)?undo操作時(shí)觸發(fā)
    • redoAvailable(bool):可以進(jìn)?redo操作時(shí)觸發(fā)
    • copyAvaiable(bool):?本被選中/取消選中時(shí)觸發(fā)

3.Combo Box

  • QComboBox表?下拉框
  • 核心屬性
    • currentText:當(dāng)前選中的文本
    • currentIndex:當(dāng)前選中的條目下標(biāo)
      • 從0開(kāi)始計(jì)算
      • 如果當(dāng)前沒(méi)有條?被選中,值為-1
    • editable:是否允許修改
      • 設(shè)為true時(shí),QComboBox的?為就?常接近QLineEdit,也可以設(shè)置validator
    • iconSize:下拉框圖標(biāo)(小三角)的大小
    • maxCount:最多允許有多少個(gè)條目
  • 核心方法
    • addItem(const QString&):添加?個(gè)條?
    • currentIndex():獲取當(dāng)前條?的下標(biāo)
      • 從0開(kāi)始計(jì)算
      • 如果當(dāng)前沒(méi)有條?被選中,值為-1
    • currentText():獲取當(dāng)前條?的?本內(nèi)容
  • 核心信號(hào)
    • activated(int):當(dāng)??選擇了?個(gè)選項(xiàng)時(shí)發(fā)出
    • activated(constQString&text):這個(gè)時(shí)候相當(dāng)于??點(diǎn)開(kāi)下拉框,并且?標(biāo)劃過(guò)某個(gè)選項(xiàng),此時(shí)還沒(méi)有確認(rèn)做出選擇
    • currentIndexChanged(int):當(dāng)前選項(xiàng)改變時(shí)發(fā)出
    • currentIndexChanged(const QString& text):此時(shí)??已經(jīng)明確的選擇了?個(gè)選項(xiàng),??操作或者通過(guò)程序操作都會(huì)觸發(fā)這個(gè)信號(hào)
    • editTextChanged(constQString& text):當(dāng)編輯框中的?本改變時(shí)發(fā)出
      • editabletrue時(shí)有效

4.Spin Box

  • QSpinBox或者QDoubleSpinBox表?**“微調(diào)框”**
    • 它是帶有按鈕的輸?框,可以?來(lái)輸?整數(shù)/浮點(diǎn)數(shù),通過(guò)點(diǎn)擊按鈕來(lái)修改數(shù)值??
  • 關(guān)鍵屬性
    • value:存儲(chǔ)的數(shù)值
    • singleStep:每次調(diào)整的"步?",即按?次按鈕數(shù)據(jù)變化多少
    • displayInteger:數(shù)字的進(jìn)制
      • 例如displayInteger設(shè)為10則是按照10進(jìn)制表?,設(shè)為2則為2進(jìn)制表?.
    • minimum:最?值
    • maximum:最?值
    • suffix:后綴
    • prefix:前綴
    • wrapping:是否允許換?
    • frame:是否帶邊框
    • alignment:?字對(duì)??式.
    • readOnly:是否允許修改
    • buttonSymbol:按鈕上的圖標(biāo)
      • UpDownArrows:上下箭頭形式
      • PlusMinus:加減號(hào)形式
      • NoButtons:沒(méi)有按鈕
    • accelerated:按下按鈕時(shí)是否為快速調(diào)整模式
    • correctionMode:輸?有誤時(shí)如何修正
      • QAbstractSpinBox::CorrectToPreviousValue
        • 如果??輸?了?個(gè)?效的值,那么SpinBox會(huì)恢復(fù)為上?個(gè)有效值
        • 例如:如果SpinBox的初始值是1,??輸?了-1(?效),然后SpinBox會(huì)恢復(fù)為1
      • QAbstractSpinBox::CorrectToNearestValue
        • 如果??輸?了?個(gè)?效的值,SpinBox會(huì)恢復(fù)為最接近的有效值
        • 例如:如果SpinBox的初始值是1,??輸?了-1(?效),那么SpinBox會(huì)恢復(fù)為0
    • keyboardTrack:是否開(kāi)啟鍵盤(pán)跟蹤
      • true:每次在輸?框輸??個(gè)數(shù)字,都會(huì)觸發(fā)?次valueChanged()textChanged()信號(hào)
      • false,只有在最終按下Enter或者輸?框失去焦點(diǎn),才會(huì)觸發(fā)valueChanged()textChanged()信號(hào)
  • 核心信號(hào)
    • textChanged(QString):微調(diào)框的?本發(fā)?改變時(shí)會(huì)觸發(fā)
      • 參數(shù)QString帶有前綴和后綴
    • valueChanged(int):微調(diào)框的?本發(fā)?改變時(shí)會(huì)觸發(fā)
      • 參數(shù)int,表?當(dāng)前的數(shù)值

5.Date Edit && Time Edit

  • QDateEdit?期的微調(diào)框
  • QTimeEdit時(shí)間的微調(diào)框
  • QDateTimeEdit時(shí)間?期的微調(diào)框
  • 這?個(gè)控件?法?常相似,以QDateTimeEdit為例進(jìn)?介紹
  • 核心屬性
    • dateTime:時(shí)間?期的值,形如2000/1/1 0:00:00
    • date:?jiǎn)渭?期的值,形如2000/1/1
    • time:?jiǎn)渭儠r(shí)間的值,形如0:00:00
    • displayFormat:時(shí)間?期格式,形如yyyy/M/d H:mm
    • minimumDateTime:最?時(shí)間?期
    • maximumDateTime:最?時(shí)間?期
    • timeSpec
      • Qt::LocalTime :顯?本地時(shí)間
      • Qt::UTC :顯?協(xié)調(diào)世界時(shí)(UTC)
      • Qt::OffsetFromUTC :顯?相對(duì)于UTC的偏移量(時(shí)差)
  • 核心信號(hào)
    • dateChanged(QDate):?期改變時(shí)觸發(fā)
    • timeChanged(QTime):時(shí)間改變時(shí)觸發(fā)
    • dateTimeChanged(QDateTime):時(shí)間?期任意?個(gè)改變時(shí)觸發(fā)
  • 示例:日期計(jì)算器
    • 使?daysTo()可以計(jì)算兩個(gè)?期的天數(shù)
    • 使?secsTo()可以計(jì)算兩個(gè)時(shí)間的秒數(shù)
    • 通過(guò)(seconds/3600)換算成?時(shí)數(shù),再%24得到零?個(gè)?時(shí)
    • 使?QString::number把整數(shù)轉(zhuǎn)成QString進(jìn)?拼接
    void Widget::on_pushButton_clicked()
    {
    	QDateTime timeOld = ui->dateTimeEdit_old->dateTime();
    	QDateTime timeNew = ui->dateTimeEdit_new->dateTime();
    
    	// int days = timeOld.daysTo(timeNew); // 實(shí)際上這樣換算有bug
    	int days = (timeOld.secsTo(timeNew) / 3600) / 24;
    	int hours = (timeOld.secsTo(timeNew) / 3600) % 24;
    	
    	QString text = QString("間隔為") + QString::number(days) + QString("天 ") 
    				 + QString::number(hours) + QString("個(gè)?時(shí)!");
    
    	ui->label->setText(text);
    }
    

6.Dial

  • QDial表??個(gè)旋鈕
  • 核心屬性
    • value:持有的數(shù)值
    • minimum:最?值
    • maximum:最?值
    • singleStep:按下?向鍵的時(shí)候改變的步?
    • pageStep:按下pageUp/pageDown的時(shí)候改變的步?
    • sliderPosition:界?上旋鈕顯?的初始位置
    • tracking:外觀是否會(huì)跟蹤數(shù)值變化,默認(rèn)值為true,?般不需要修改
    • wrapping:是否允許循環(huán)調(diào)整,即數(shù)值如果超過(guò)最?值,是否允許回到最?值
      • 即:調(diào)整過(guò)程能否"套圈"
    • notchesVisible:是否顯?刻度線
    • notchTarget:刻度線之間的相對(duì)位置,數(shù)字越?,刻度線越稀疏
  • 核心信號(hào)
    • valueChanged(int):數(shù)值改變時(shí)觸發(fā)
    • rangeChanged(int, int):范圍變化時(shí)觸發(fā)

7.Slider

  • QSlider表??個(gè)滑動(dòng)條
    • QSliderQDial都是繼承?QAbstractSlider,因此?法上基本相同
  • 核心屬性
    • value:持有的數(shù)值
    • minimum:最?值
    • maximum:最?值
    • singleStep:按下?向鍵的時(shí)候改變的步?
    • pageStep:按下pageUp/pageDown的時(shí)候改變的步?
    • sliderPosition:界?上旋鈕顯?的初始位置
    • tracking:外觀是否會(huì)跟蹤數(shù)值變化,默認(rèn)值為true,?般不需要修改
    • orientation:滑動(dòng)條的?向是?平還是垂直
    • invertedAppearance:是否要翻轉(zhuǎn)滑動(dòng)條的?向
    • tickPosition:刻度的位置
    • tickInterval:刻度的密集程度
  • 核心信號(hào)
    • valueChanged(int):數(shù)值改變時(shí)觸發(fā)
    • rangeChanged(int, int):范圍變化時(shí)觸發(fā)
  • 示例:通過(guò)?定義快捷鍵調(diào)整滑動(dòng)條位置
    • 使?QShortCut類(lèi)設(shè)置快捷鍵
    • 快捷鍵觸發(fā)時(shí),會(huì)發(fā)出QShortcut::activated信號(hào),連接到??寫(xiě)的slot函數(shù)
    QShortcut* shortCut1 = new QShortcut(this);
    shortCut1->setKey(QKeySequence("-"));
    connect(shortCut1, &QShortcut::activated, this, &Widget::subValue);
    
    QShortcut* shortCut2 = new QShortcut(this);
    shortCut2->setKey(QKeySequence("="));
    connect(shortCut2, &QShortcut::activated, this, &Widget::addValue);

總結(jié) 

到此這篇關(guān)于Qt輸入類(lèi)控件用法的文章就介紹到這了,更多相關(guān)Qt輸入類(lèi)控件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++設(shè)計(jì)模式之工廠方法模式

    C++設(shè)計(jì)模式之工廠方法模式

    這篇文章主要介紹了C++設(shè)計(jì)模式之工廠方法模式,它是對(duì)簡(jiǎn)單工廠模式的擴(kuò)展,,需要的朋友可以參考下
    2014-09-09
  • C語(yǔ)言實(shí)現(xiàn)三角函數(shù)表

    C語(yǔ)言實(shí)現(xiàn)三角函數(shù)表

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言三角函數(shù)表,打印出相對(duì)應(yīng)的三角函數(shù)值,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C++標(biāo)準(zhǔn)模板庫(kù)vector的常用操作

    C++標(biāo)準(zhǔn)模板庫(kù)vector的常用操作

    今天小編就為大家分享一篇關(guān)于C++標(biāo)準(zhǔn)模板庫(kù)vector的常用操作,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • Qt實(shí)現(xiàn)編寫(xiě)SMTP客戶(hù)端的示例詳解

    Qt實(shí)現(xiàn)編寫(xiě)SMTP客戶(hù)端的示例詳解

    這篇文章主要介紹了如何通過(guò)Qt實(shí)現(xiàn)編寫(xiě)SMTP客戶(hù)端,可以實(shí)現(xiàn)通過(guò)SMTP發(fā)送電子郵件(有文本,html,附件,內(nèi)聯(lián)文件等的MIME)。并支持SSL和SMTP身份驗(yàn)證,感興趣的可以學(xué)習(xí)一下
    2022-11-11
  • C++ Futures與Promises線程使用示例講解

    C++ Futures與Promises線程使用示例講解

    future和promise的作用是在不同線程之間傳遞數(shù)據(jù)。使用指針也可以完成數(shù)據(jù)的傳遞,但是指針?lè)浅NkU(xiǎn),因?yàn)榛コ饬坎荒茏柚怪羔樀脑L問(wèn);而且指針的方式傳遞的數(shù)據(jù)是固定的,如果更改數(shù)據(jù)類(lèi)型,那么還需要更改有關(guān)的接口,比較麻煩
    2022-11-11
  • C++遞歸與迭代兩種編程范式的對(duì)比與實(shí)踐應(yīng)用

    C++遞歸與迭代兩種編程范式的對(duì)比與實(shí)踐應(yīng)用

    遞歸(Recursion)是指函數(shù)通過(guò)調(diào)用自身來(lái)解決問(wèn)題的一種方法而迭代 (Iteration)是通過(guò)循環(huán)結(jié)構(gòu)(如 for、while)重復(fù)執(zhí)行一段代碼來(lái)解決問(wèn)題的方法,本文給大家介紹C++遞歸與迭代兩種編程范式的對(duì)比與實(shí)踐應(yīng)用,感興趣的朋友跟隨小編一起看看吧
    2025-10-10
  • c++實(shí)現(xiàn)strcat字符串連接庫(kù)函數(shù)的方法詳解

    c++實(shí)現(xiàn)strcat字符串連接庫(kù)函數(shù)的方法詳解

    本篇文章是對(duì)使用c++實(shí)現(xiàn)strcat字符串連接庫(kù)函數(shù)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++運(yùn)行時(shí)獲取類(lèi)型信息的type_info類(lèi)與bad_typeid異常

    C++運(yùn)行時(shí)獲取類(lèi)型信息的type_info類(lèi)與bad_typeid異常

    這篇文章主要介紹了C++運(yùn)行時(shí)獲取類(lèi)型信息的type_info類(lèi)與bad_typeid異常,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-01-01
  • 詳解C++文件讀寫(xiě)操作

    詳解C++文件讀寫(xiě)操作

    這篇文章主要為大家詳細(xì)介紹了C++文件讀寫(xiě)操作,感興趣的小伙伴們可以參考一下
    2016-03-03
  • C++ list-map鏈表與映射表的簡(jiǎn)單使用

    C++ list-map鏈表與映射表的簡(jiǎn)單使用

    本文主要介紹了C++ list-map鏈表與映射表的簡(jiǎn)單使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評(píng)論

腾冲县| 宁强县| 石泉县| 安塞县| 灯塔市| 沁阳市| 拉萨市| 铜川市| 榆社县| 正定县| 镇赉县| 永春县| 华安县| 珲春市| 汤原县| 铁岭市| 广西| 阿坝| 澄江县| 黄龙县| 临朐县| 四会市| 怀宁县| 宁都县| 东乌| 沙坪坝区| 丹棱县| 芜湖市| 和林格尔县| 炎陵县| 太湖县| 宝兴县| 木兰县| 色达县| 阜新市| 荣昌县| 曲沃县| 贵阳市| 扬中市| 山丹县| 开封县|