如何在 Qt 的 lcd num 中添加浮点数?

How to add floating point in lcd num for Qt?

在 Qt 设计器中,我尝试在数字之间添加浮点数,例如 19.44,但我没有找到任何功能来执行此操作。为此,我编写了下面给出的简单代码:

这是我想做的事情:

我想显示一个温度值。为此,我尝试编写 float(8.8) 并将其近似为 9。我想将其显示为 8.8。这是我的 .py 文件。

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(469, 360)
        Dialog.setStyleSheet("")
        Dialog.setSizeGripEnabled(False)
        Dialog.setModal(False)
        self.lcdNumber_2 = QtWidgets.QLCDNumber(Dialog)
        self.lcdNumber_2.setGeometry(QtCore.QRect(140, 60, 191, 161))
        self.lcdNumber_2.setStyleSheet("color: rgb(0, 0, 0);")
        self.lcdNumber_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.lcdNumber_2.setSmallDecimalPoint(True)
        self.lcdNumber_2.setDigitCount(2)
        self.lcdNumber_2.setSegmentStyle(QtWidgets.QLCDNumber.Filled)
        self.lcdNumber_2.setProperty("intValue", 88)
        self.lcdNumber_2.setObjectName("lcdNumber_2")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

输出:

怎么加点呢?有什么办法吗?

请考虑 QLCDNumber 是一个非常 旧的小部件,它仍然可以向后兼容,它缺乏对复杂值或特定符号的透明支持,并且经常有意外的行为。考虑使用简单的 QLabel 并寻找 LCD 样式的字体来为其设置。

这种行为至少在 Designer 中确实是不明确的,因此,首先使用 value 属性(接受浮点数)而不是 intValue,然后增加digitCount 的值至少为 5,因为在舍入值(4 个数字 + 小数点)时小数点算作一个数字。

然后,每当您需要在程序中设置一个值时,不要使用数字,而是使用它的字符串表示形式:

    self.lcdNumber_2.display('{:.02f}'.format(value))

也许你已经知道了,但安全总比后悔好:记住 pyuic 生成的文件应该永远不会被修改,所以上面的行应该实现您的程序在 new 主脚本中,请遵循有关 using Designer 的官方指南以了解如何使用它。