天天看點

qlineedit隻能輸入數字_QLineEdit如何控制隻能輸入IP位址?

要讓輸入框隻能輸入IP位址,首先會想到的就是使用正規表達式。QLineEdit也支援使用正規表達式,就像這樣:

qlineedit隻能輸入數字_QLineEdit如何控制隻能輸入IP位址?

QLineEdit支援設定驗證器來限制輸入的内容,QRegExpValidator是其中一種。正規表達式寫法有很多,以上的表達式可以參考一下:

b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)b
           

QLineEdit還有另一種方式來限制輸入的内容,那就是設定掩碼(setInputMask),例如:

qlineedit隻能輸入數字_QLineEdit如何控制隻能輸入IP位址?

分号前面的0表示可以輸入任何數字,也可以不輸入。分号後面的"_"表示沒有輸入地方用"_"替代。分隔0的點則直接顯示出來。設定掩碼後我們隻能輸入掩碼所占的位置。如下

qlineedit隻能輸入數字_QLineEdit如何控制隻能輸入IP位址?

我們使用了xxxx占了四個位置(小寫x表示可以輸入任意字元),是以在QLineEdit中最多隻能輸入四個字元。可用掩碼及其含義可以參考下圖:

qlineedit隻能輸入數字_QLineEdit如何控制隻能輸入IP位址?

直接使用掩碼方式不能很好的限制IP的輸入,因為沒辦法控制範圍,但是有個好處是它可以把點先顯示出來。讓人更容易了解要輸入的是什麼。可以結合驗證器和掩碼

qlineedit隻能輸入數字_QLineEdit如何控制隻能輸入IP位址?

測試環境:Qt5.9.6

qlineedit隻能輸入數字_QLineEdit如何控制隻能輸入IP位址?