如何在 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 的官方指南以了解如何使用它。
在 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 的官方指南以了解如何使用它。