【问题标题】:Connecting multiple pairs of widgets in PyQt5 [duplicate]在 PyQt5 中连接多对小部件 [重复]
【发布时间】:2020-06-08 09:02:42
【问题描述】:

我的 GUI 中有多个 QSlider、QSpinBox 对,我需要将这些值锁定在一起。

目前,我是这样实现的:

self.slider.valueChanged.connect(self.on_slider_move)
self.spinBox.valueChanged.connect(self.on_spinbox_val_change)

def on_slider_move(self, val):
   self.spinBox.setValue(val)

def on_spinbox_val_change(self, val):
   self.slider.setValue(val)

假设有 5 个 (QSlider, QSpinBox) 对,我必须设置 10 个连接和 10 个插槽,其中一些插槽对 val 进行细微更改。

为此必须有一些通用的方法。例如,知道谁发送了信号并将其相应地路由到特定插槽:

def on_slider_move(self, sender, val):
   if sender == 'slider1':
       self.spinBox1.setValue(val)
   elif sender == 'slider2':
       self.spinBox2.setValue(val / 10)
   .
   .
   .

不幸的是,在将信号连接到插槽时,我找不到获取发送者的方法。

什么是这样做的好方法?

【问题讨论】:

    标签: qt pyqt pyqt5 qt5


    【解决方案1】:

    self 对象有一个sender 方法。

    调用下面的函数,你可以使用你所说的逻辑。

    sender = self.sender()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多