pyside6 是否可以在一行中连接 QSlider.valueChanged 和 QLabel.setText?

问题描述 投票:0回答:1

我有一个 GUI,我想连接一个滑块和一个显示当前滑块值的标签。

QSlider.valueChanged
事件返回一个整数,而
QLabel.setText
需要一个字符串。是否有可能将这两个元素连接在一行中而不是编写额外的函数?

漫长(也是唯一?)的方法:

class MainWindow(QMainWindow):
    def __init__():
        ...
        self._label = QLabel('hello')
        self._slider = QSlider()
        self._slider.valueChanged.connect(self.set_value)
        ...

    def set_value(self, value):
        self._label.setText(str(value))

可以写成一行吗?以下代码会引发错误,因为它传递的是

int
而不是
string

class MainWindow(QMainWindow):
    def __init__():
        ...
        self._label = QLabel('hello')
        self._slider = QSlider()
        self._slider.valueChanged.connect(self._label.setText)
        ...
python pyside6
1个回答
0
投票

您可以使用 lambda 函数:

self._slider.valueChanged.connect(lambda value: self._label.setText(str(value)))
© www.soinside.com 2019 - 2024. All rights reserved.