我正在用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 防护
- 创建 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 自己的 remoodule 使用步骤 1 中的正则表达式进行事后验证。