【发布时间】:2020-01-16 19:58:41
【问题描述】:
是否可以使用二进制输入的 spinbox。让我们说“10010”。上下滚动会进行二进制递增/递减。
【问题讨论】:
标签: python pyqt pyqt5 qspinbox
是否可以使用二进制输入的 spinbox。让我们说“10010”。上下滚动会进行二进制递增/递减。
【问题讨论】:
标签: python pyqt pyqt5 qspinbox
您必须将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_())
【讨论】: