PyQt5 QSlider застрял на 0 в пользовательском интерфейсе, но значение и позиция изменяются в коде - PullRequest
0 голосов
/ 01 октября 2019

У меня есть видео и приложение-слайдер. Я использую этот пример в качестве базы: https://github.com/baoboa/pyqt5/blob/master/examples/multimediawidgets/videowidget.py

В моей реализации у меня есть следующие файлы:

MainAppController.py

self.__mainWindow__.connectMediaPlayerDurationChanged(self.__mainWindow__.setSliderRange)
self.__mainWindow__.connectSliderMoved(self.__mainWindow__.setVideoPosition)
self.__mainWindow__.connectMediaPlayerPositionChanged(self.__mainWindow__.setSliderPosition)
self.__mainWindow__.connectMediaPlayerError(self.__mainWindow__.handleMediaPlayerError)

в MainWindowGUIController.py

def setSliderRange(self, duration):
    self.__w__.videoSlider.setRange(0, duration)
    self.__w__.videoSlider.setMaximum(duration)
    print("setSliderRange " + str(duration))

def setSliderPosition(self, position):
    self.__w__.videoSlider.setValue(position)
    self.__w__.videoSlider.setSliderPosition(position)
    print("setSliderPosition " + str(position))

def getSliderPosition(self):
    return self.__w__.videoSlider.value()

def setVideoPosition(self, position):
    self.__w__.mediaPlayer.setPosition(position)
    print("setVideoPosition " + str(position))

def setFileToMediaPlayer(self, fileName):
    if fileName is not '':
        self.__w__.mediaPlayer.setMedia(QMediaContent(QUrl.fromLocalFile(fileName)))

Но Google Video выглядит следующим образом: https://drive.google.com/file/d/0ByMjTiHsFND1NnVZcFFtRFhrY1RpbmpyeUJmNTZhbXB0djBJ/view

Почему этот ползунок не перемещается в пользовательском интерфейсе, а незаметно перемещается и изменяет значение? Iне могу понять это, и я не могу найти какое-либо решение в Интернете. Мой графический интерфейс генерируется QT Designer, и сгенерированный код такой же, как в примере.

РЕДАКТИРОВАТЬ: если я пишу videoSlider.setSliderPosition (10) в init, он переместит ползунок на 10. Но он выигралне перемещайте ползунок ни по щелчку, ни при вызове функции setSliderPosition.

Я не понимаю, что происходит.

...