В приложении PyQt4 я подключаю ползунок к тому или иному слоту в зависимости от действий пользователя. Я меняю назначение слотов в ответ на нажатие кнопок. Несколько разных слотов делают разные вещи, слишком разные, чтобы их можно было объединить в один слот с некоторыми операторами «если».
Это приложение часто вылетает. Мне интересно, кошерно ли переназначать слоты на один сигнал на лету вот так. Может ли это привести к висячим указателям внутри PyQt4, повреждению памяти или чему-то еще плохому? Если то, что я делаю, в порядке, я буду искать ошибку в другом месте.
Вот очень набросочная версия моего приложения:
def MyThing(QWidget):
(in some approprate place)
self.s = QSlider()
def MethodOne(self): # this is a slot handling a button click
self.s.valueChanged.connect(self.someslot1)
def MethodTwo(self): # likewise
self.s.valueChanged.connect(self.someslot2)
def someslot1(self, svalue): # slider movement handler
(compute, show info based on slider position)
def someslot2(self, svalue): # similar to someslot1
....