pyqt4: подключить ползунок для обновления графика - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь создать графический интерфейс для обновления графика, т.е. plot(timeS, dataS), используя ползунок, соответствующий вектору времени (timeS) данных, которые я хочу отобразить (dataS), которые меняются во времени ,

Я попытался подключить ползунок к моей функции графика, которая имеет много ввода self.slider.valueChanged.connect(self.myPlotFunction(.....)), который находится в части инициализации моего класса, но я не могу использовать ввод определенной функции myPlotFunction().

Итак, я хочу, чтобы, когда я начинаю перетаскивать ползунок, график меняется в зависимости от времени / положения ползунка. Кроме того, мой временной вектор состоит из чисел с плавающей точкой, в то время как ползунок допускает значения типа int.

1 Ответ

0 голосов
/ 26 июня 2018

Когда вы подключаете слот, вы не вызываете функцию, поэтому

self.slider.valueChanged.connect(self.myPlotFunction(.....))

должно выглядеть как

self.slider.valueChanged.connect(self.myPlotFunction)

и ваше определение myPlotFunction должно соответствовать сигнатуре аргумента сигнала valueChanged, поэтому

def myPlotFunction(self, sliderValue):
    # Do stuff
    pass

Если вам нужно передать больше вещей в myPlotFunction, вы можете использовать лямбду, убедившись в том, что вы согласуете аргументы, которые Qt передаст первым, т.е.

otherVar = "some other stuff"
self.slider.valueChanged.connect(lambda sv, ov=otherVar: self.myPlotFunction(sv, ov))

и скорректируйте определение myPlotFunction соответственно.

...