如何对 QtGui.QInputDialog.GetText() 进行 IP 验证



我正在用PySide编写代码,它有一个按钮"更改IP"。单击按钮时,将出现一个包含文本框的对话框。我想在仅接受IP地址的文本框上进行验证。

我正在使用以下代码:

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

AFAIR,QInputDialog.getText不支持即时验证,但如果你愿意滚动自己的对话框,你可以使用 QRegExpValidator

1.在互联网上查找所需的正则表达式(例如,在这里(。看到它看起来像

^(([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 防护

等级
  1. 创建 QRegExp 对象,如下所示:

rx = QRegExp("regular_expression_string_from_step_1")

3.创建QRegExpValidator实例并将rx对象传递给其构造函数,如下所示:

my_validator = QRegExpValidator(rx) 
  1. 呼叫my_line_edit.setValidator(my_validator)

就是这样,my_line_edit现在应该拒绝输入无效的IP地址。如果你不想这样做,你可以使用 python 自己的 remoodule 使用步骤 1 中的正则表达式进行事后验证。

最新更新