2014-12-02 39 views
1

進行IP驗證我正在PySide中編寫代碼,其中有一個「更改IP」按鈕。單擊按鈕時將出現一個對話框,其中包含文本框。我想驗證只接受IP地址的文本框。如何爲QtGui.QInputDialog.GetText()

我使用這個代碼:

QtGui.QInputDialog.getText(self, "Title", "Enter IP: ") 

回答

5

AFAIR,QInputDialog.getText不支持即時驗證,但如果你願意推出自己的對話框,你可以使用QRegExpValidator

1在互聯網上查找所需的正則表達式(例如,here)。 見,它看起來像

^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$爲IP4

  • 創建QRegExp對象,像這樣:
  • rx = QRegExp("regular_expression_string_from_step_1")

    3.創建QRegExpValidator實例和將rx對象傳遞給它的構造函數,如下所示:

    my_validator = QRegExpValidator(rx) 
    
  • 呼叫my_line_edit.setValidator(my_validator)
  • 就是這樣,現在my_line_edit應拒絕非有效的IP不會忽略的條目。如果你不想這樣,你可以使用python自己的re moodule進行事後驗證,使用步驟1中的正則表達式。