文章目錄
- qt常用控件-05
- LineEdit
- TextEdit
- combo box
- 結語
很高興和大家見面,給生活加點impetus!!開啟今天的編程之路!!
今天我們進一步c++11中常見的新增表達
作者:?( ‘ω’ )?260
我的專欄:qt,Linux,C++進階,C++初階,數據結構初階,題海探驪,c語言
歡迎點贊,關注!!
qt常用控件-05
LineEdit
常見的屬性:
核心信號
接下來我們來看示例1:
我們想要實現一個用戶登錄界面,來看代碼實現:首先我們直接圖形化創建對應的label和lineEdit控件。
隨后我們給其中添加上一些提示符:
我們再來運行代碼:
這里的setInputMask目的是因為在中國絕大多數電話都是11位,所以我們當我們已經輸入11位電話之后,理應不能輸入電話了~
我們來看示例2:
我們前面是使用的setInputMask來設置限制格式的,只能適用于簡單的校驗,在大多數情況下,我們利用正則表達式設置限制格式更加靈活。正則表達式比較復雜,我們這里每次使用的時候查閱文檔并使用在線工具。其實使用的時候都不用自己寫,直接網上搜,再通過在線工具驗證即可
正則表達式文檔
在線測試工具
接下來我們使用正則表達式來校驗電話號碼:我們實現一個只有滿足正則表達式的電話號碼下,此時我們才能夠點擊提交:
先來圖像化設置控件:
首先,我們需要設置一個正則表達式,和校驗器,校驗器是利用正則表達式為基準,去校驗該電話號碼的,所以需要使用正則表達式出初始化這個校驗器,來看代碼
為什么這里是new呢的?因為new的,但是我將該new的校驗器初始化隔了setValidator,當該對象銷毀的時候,析構函數會將這個校驗器一并刪除,有點智能指針那種感覺了。
我們已經設置校驗器,那么,我們是不是還需要觸發對應的文本檢測信號,我們才能夠使用校驗器基于正則表達式去校驗文本呢?
來看接下來信號與 槽函數的部分(該信號只要文本發生改變,就會觸發該信號):
為什么我們不用arg1,而選擇再創建一個s呢?因為validate的參數是QString,int,但是我們arg1是const,直接傳的話權限放大,報錯,第二個整形是為了當不匹配的時候,告訴我們字符串此時長度是多少(即是從哪里開始不匹配的),這個參數不是很重要。而且返回值是一個state的枚舉類型。其中包含:
我們直接來看結果:
校驗器一般有四種,但是我們常用的就是示例上的這種:
我們來看示例3,我們想來設置一個面板,內容是用戶重置密碼,即我們需要輸入密碼+確認密碼并且驗證這兩個密碼是否相同:
這里我們肯定需要用到上面第二個示例中使用到的信號,因為設置密碼的時候我們需要和重置密碼比較看是否相同,重置密碼的時候我們需要和設置密碼比較是否相同。即兩個lineEdit都需要設置文本檢查信號,來看圖形化界面:
來看代碼:
來看效果:
示例4,我們在輸入密碼的時候,旁邊會有一個按鈕,點擊之后密碼就會回顯,反之密碼就不會回顯,先來看圖形化界面:
再來看代碼:
我們來看效果:
TextEdit
常見屬性:
常見信號:
我們來看示例代碼1,獲取到多行輸入框中的內容
先來看圖形化界面部分:
來看代碼部分:
注意:Text Edit獲取自身文本接口不是text()!!
來看結果:
示例2,我們來測試一下接下來的信號:
這里我們通過日志打印來觀察現象:
combo box
常見屬性:
核心操作:
核心信號:
我們來看示例1,我們來模擬一個外面點餐界面:
先來看界面:
再來看代碼:
來看效果:
上述是通過代碼addItem添加,當然也可以直接在可視化界面添加項目,直接在ui文件雙擊combo box即可
示例2:我們前面是自己通過代碼添加,我們還可以通過文件/網絡添加:
因為有時候combo box下拉框的項并不是固定的,會隨著時間改變而改變,比如:學生選課
一般我們打開文件使用fopen(c語言階段),ifstream(c++階段),而我們更加傾向后者~~
先在d判斷創建一個文本文件,并完成其中的內容,我們必須要換行,因為我們讀取該文本文件的時候需要使用到getline操作:
來看代碼:
來看效果:
這樣我們就添加成功了!!
結語
今天的內容就到這里了,感謝大家的認真閱讀,不足之處歡迎大家留言指出,感謝大家支持!!