PyQt5 QSlider值始终为0

2024-10-03 04:25:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我对PyQt5 QSlider有问题。在

我在一个小部件中有多个qslider。当一个对应的QLabel的句柄被释放的时候。因此,我连接了for循环中的所有滑块,在这里我将滑块和标签作为参数传递。在

mot1_slider = QSlider(Qt.Horizontal)
    mot1_value = QLabel('0')
    mot2_slider = QSlider(Qt.Horizontal)
    mot2_value = QLabel('0')
    mot3_slider = QSlider(Qt.Horizontal)
    mot3_value = QLabel('0')
    trav_slider = QSlider(Qt.Horizontal)
    trav_value = QLabel('0')
    temp_slider = QSlider(Qt.Horizontal)
    temp_value = QLabel('0')
    air_slider = QSlider(Qt.Horizontal)
    air_value = QLabel('0')

    sliders = [mot1_slider, mot2_slider, mot3_slider, trav_slider, temp_slider, air_slider]
    slider_values = [mot1_value, mot2_value, mot3_value, trav_value, temp_value, air_value]

    //[removed for readability, here i add the elements into a QGroupBox]

    for slider, value_label in zip(sliders, slider_values):
        slider.sliderReleased.connect(lambda: self.slider_released(slider,value_label))

def slider_released(self, slider, value_label):
    value_label.setText(slider.value())

如果我运行这个,标签值会一直显示为0。如果我这样做print(slider.value())我也得到0。在

我错过了什么?在

希望你们中的任何人都能帮我解决这个问题。谢谢!在


Tags: forvalueairqttemplabelslider滑块