qt designer 中的lcd number怎么显示浮点数
时间: 2024-05-13 17:18:33 浏览: 315
在Qt Designer中,LCDNumber控件默认只显示整数。如果要显示浮点数,可以通过以下两种方法来实现:
1. 在代码中设置小数位数:
在Qt Designer中,LCDNumber控件的默认小数位数为0。如果要显示小数位数,可以在代码中设置setDecimals()函数来改变小数位数。如下所示:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import QTimer
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.lcdNumber = QLCDNumber(self)
self.lcdNumber.setGeometry(50, 50, 200, 50)
self.lcdNumber.setDigitCount(8)
self.lcdNumber.setDecimals(2) # 设置小数位数为2
timer = QTimer(self)
timer.timeout.connect(self.updateLCDNumber)
timer.start(1000)
def updateLCDNumber(self):
value = 3.1415926
self.lcdNumber.display(value)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyMainWindow()
window.show()
sys.exit(app.exec_())
```
2. 自定义LCDNumber控件:
如果需要频繁使用带有小数位数的LCDNumber控件,可以自定义一个带有小数位数的LCDNumber控件,继承QLCDNumber控件,并重写display()函数。如下所示:
```python
from PyQt5.QtWidgets import QLCDNumber
class MyLCDNumber(QLCDNumber):
def __init__(self, decimals=0):
super().__init__()
self.setDecimals(decimals)
def display(self, value):
super().display("%.{}f".format(self.decimals()) % value)
```
在代码中使用自定义的MyLCDNumber控件,并设置小数位数。如下所示:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import QTimer
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.lcdNumber = MyLCDNumber(decimals=2) # 设置小数位数为2
self.lcdNumber.setGeometry(50, 50, 200, 50)
self.lcdNumber.setDigitCount(8)
timer = QTimer(self)
timer.timeout.connect(self.updateLCDNumber)
timer.start(1000)
def updateLCDNumber(self):
value = 3.1415926
self.lcdNumber.display(value)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyMainWindow()
window.show()
sys.exit(app.exec_())
```
阅读全文