【问题标题】:QSpinbox with binary numbers带有二进制数的 QSpinbox
【发布时间】:2020-01-16 19:58:41
【问题描述】:

是否可以使用二进制输入的 spinbox。让我们说“10010”。上下滚动会进行二进制递增/递减。

【问题讨论】:

    标签: python pyqt pyqt5 qspinbox


    【解决方案1】:

    您必须将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_())
    

    【讨论】:

    • 谢谢。正是我想要的
    • 我想为 w.setValue(0b00000) 显示“00000”。我只能得到0。有没有办法修改。谢谢。
    猜你喜欢
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 2011-11-25
    • 1970-01-01
    相关资源
    最近更新 更多