带二进制数的 QSpinbox

QSpinbox with binary numbers

是否可以使用带有二进制输入的旋转框。让我们说“10010”。并上下滚动二进制 increment/decrement。

您必须将 displayIntegerBase 属性 设置为 2 才能使用二进制系统:

import sys

from PyQt5 import QtWidgets


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = QtWidgets.QSpinBox()
    w.setValue(0b10010)
    w.setDisplayIntegerBase(2)
    w.show()
    sys.exit(app.exec_())

更新:

如果要设置最小宽度(在本例中为 5),则必须覆盖 textFromValue() 方法:

import sys

from PyQt5 import QtWidgets


class SpinBox(QtWidgets.QSpinBox):
    def textFromValue(self, value):
        return "{:05b}".format(value)


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = SpinBox()
    w.setMaximum(0b11111)
    w.setValue(0b00000)
    w.setDisplayIntegerBase(2)
    w.show()
    sys.exit(app.exec_())