QLineEdit如何控制只能輸入IP地址?

要讓輸入框只能輸入IP地址,首先會想到的就是使用正則表示式。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如何控制只能輸入IP地址?

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

QLineEdit如何控制只能輸入IP地址?

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

QLineEdit如何控制只能輸入IP地址?

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

QLineEdit如何控制只能輸入IP地址?

測試環境:Qt5。9。6

QLineEdit如何控制只能輸入IP地址?