簡介
QLineEdit屬于輸入插件,用來實現單行錄入。支持幾種錄入模式。
Normal表示正常錄入,錄入的信息會顯示在QLineEdit上。
Password表示密碼錄入的方式,錄入的信息不顯示QLineEdit,只是通過黑色圓點顯示。
NoEcho 表示不顯示錄入信息,類似于Linux輸入密碼時,顯示的是一片空白。
PasswordEchoOnEdit 表示在輸入的一剎那可以看到字符,但是立刻變為不可見的黑色圓點顯示。
實戰
我們創建一個QApplication項目,名字叫editline。項目主界面取名MainWindow類,繼承于QMainWindow。Qt為我們自動生成ui文件。
然后在ui界面里添加四個QLineEdit和Label
我將ip的QLineEdit名字改為ipedit,設置ipedit的輸入方式為Normal,這樣可以在輸入時看到輸入的字符。
我們可以給ipedit設置mask規定輸入的字符只能為0~9的數字
ui->ipedit->setEchoMode(QLineEdit::Normal);QString ip_mask = "000.000.000.000;_";ui->ipedit->setInputMask(ip_mask);
具體的mask規則可以參考Qt官方文檔,這里列舉一下常見的mask規則
利用上面的規則我們可以編寫一些常用的mask
接下來我們設置mac地址的mask和錄入模式,mac地址的edit被命名為macedit
ui->macedit->setEchoMode(QLineEdit::Normal);QString mac_mask = "HH:HH:HH:HH;_";wui->macedit->setInputMask(mac_mask);
通過設置mask,規定mac的輸入內容只能為AF以及09的字符。
其實除了通過mask限制edit錄入的內容外,還可以通過正則表達式限制,比如我們設置郵箱edit的錄入內容
ui->emailedit->setEchoMode(QLineEdit::Normal);//設置正則表達式過濾 secondtonone23@163.comQRegExp regx("[a-zA-Z0-9_-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+");QValidator *validator = new QRegExpValidator(regx, ui->emailedit );ui->emailedit->setValidator(validator);
我們通過正則表達式限定了有限的規則為 “字符串和數子組合 + @ + 字符串和數子組合 + . + 字符串和數子組合”。
具體的正則表達式可以去Qt文檔查看,也可以看看下邊這個圖
接下來我們可以設置密碼輸入框的輸入模式為Password,保證錄入時不顯示密碼
ui->passwdedit->setEchoMode(QLineEdit::Password);
總結
源碼鏈接https://gitee.com/secondtonone1/qt-learning-notes