我在Qt Designer中使用6个QSpinBox小部件输入一个MAC地址,使用这个简单的代码将数字显示为HEX并接受HEX作为输入:
class HexSpinBox(QtGui.QSpinBox):
def textFromValue(self, value):
return "{0:02x}".format(value)
def validate(self, text, pos):
if text == "":
return QtGui.QValidator.Intermediate
try:
value = int("0x" + text, 16)
except ValueError:
return QtGui.QValidator.Invalid
if value < 0:
return QtGui.QValidator.Invalid
if value > 255:
return QtGui.QValidator.Invalid
return QtGui.QValidator.Acceptable
def valueFromText(self, text):
return int("0x" + text, 16)
class MACWidget(QtGui.QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
loadUi("client/qt/Networking/MACWidget.ui", self, {"HexSpinBox": HexSpinBox})
# This gives me self.spinBox_1 through self.spinBox_6 of tpye HexSpinBox
现在我希望能够从六个中选择第一个SpinBox,然后输入完整的12位MAC。在输入2位数后,我希望焦点跳转到下一个SpinBox并选择内容,以便通过输入更多内容来覆盖它。
我如何在QT4.8中做到这一点?