繁体   English   中英

pyQt5:将 pyqtSignal 从 float 转换为 str

[英]pyQt5: Convert pyqtSignal from float to str

我有一个 QObject,它发出一个浮点数的信号。 对于 QLabel.setText 方法,将其转换为 str 的最 pythonic 方法是什么?

from PyQt5.QtCore import QObject, pyqtSignal
from PyQt5 import uic 
from PyQt5.QtWidgets import QMainWindow, QLabel
   
class SerialComponent(QObject):
    value = pyqtSignal(float)

    def loop():
        value.emit(1.0)

class Main(QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi("Main.ui", self)

        component = SerialComponent()
        
        component.value.connect(label_display.setText)

这将导致

TypeError: setText(self, str): argument 1 has unexpected type 'float'

将此 pyqtSignal 转换为 str 的最 pythonic 方法是什么?

信号具有合理的签名,我建议修改插槽。

component.value.connect(lambda value: label_display.setText("{.1f}".format(value)))

这有效:

component.value.connect(label_display.setNum)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM