如何在多个spinbox输入小部件中推进光标?

时间:2018-02-15 13:54:08

标签: python qt pyqt qt4 qspinbox

我在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中做到这一点?

0 个答案:

没有答案