首先,对不起我英语不好。
我正在尝试从用户那里获取IP。我正在使用QRegExpValidator检查用户输入。验证器成功阻止不需要的字符。但我想知道当用户点击按钮时它是一个合适的IP。当然,我可以手动检查文本,但似乎有更好的方法,使用QValidator的状态枚举。我需要检查的是合格的。但我不知道怎么用
以下是我需要用到的: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qvalidator.html#State-enum
以下是我尝试过的(从主程序中提取的):
from PyQt4 import QtCore, QtGui
from functools import partial
class Gui(QtGui.QDialog):
def __init__(self):
QtGui.QDialog.__init__(self)
editLayout=QtGui.QFormLayout()
edit=QtGui.QLineEdit()
edit.setMinimumWidth(125)
regex=QtCore.QRegExp("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}")
validator=QtGui.QRegExpValidator(regex, edit)
edit.setValidator(validator)
editLayout.addRow("Enter Client IP:", edit)
button=QtGui.QPushButton("Add Client")
button.clicked.connect(partial(self.addClientButtonClicked, edit, validator))
layout=QtGui.QVBoxLayout()
layout.addLayout(editLayout)
layout.addWidget(button)
self.setLayout(layout)
def addClientButtonClicked(self, edit, validator):
print("ip=", edit.text())
print(validator.State==QtGui.QValidator.Intermediate)
app=QtGui.QApplication([])
g=Gui()
g.show()
app.exec_()
期望输出:
ip= 192.168.
False
ip= 192.168.2.1
True
但我得到的是:
ip= 192.168.
False
ip= 192.168.2.1
False
检查QValidator状态的正确方法是什么?
目前没有回答
相关问题 更多 >
编程相关推荐