ich bin neu hier im Forum und freue mich, dabei zu sein. Kurze Vorstellung: Ich bin selbstständiger IT-Consulter, programmiere seit vielen Jahren, bin aber ein Python / PyQT Neuling, ich komme sonst eher aus der Delphi und PHP Ecke. Ich möchte aber Python / PyQT erlernen (weil plattformübergreifend) und daher lese und probiere ich derzeit ziemlich viel.
Als Test für mich bastel ich derzeit an einem Mediaplayer und da kommt dann auch schon mein kleines Problem:
Ich habe einen Positions-Slider, der mit der aktuellen Media-Position mitläuft und den ich verschieben kann. Das hatte ich erst reinrassig mit einem QSlider realisiert. Der hat aber (meines Wissens nach) keine Mausklick - Event, wo man auf eine beliebige Position des Sliders klickt und dann dementsprechend die Media-Position ändert. Also flugs eine Subclass vom QSlider gebastelt (per Google gefunden):
Code: Alles auswählen
class mySlider(QSlider):
def mousePressEvent(self, nPos):
self.setValue(QStyle.sliderValueFromPosition(self.minimum(), self.maximum(), nPos.x(), self.width()))
def mouseMoveEvent(self, nPos):
self.setValue(QStyle.sliderValueFromPosition(self.minimum(), self.maximum(), nPos.x(), self.width()))
Code: Alles auswählen
self.positionSlider = mySlider(Qt.Horizontal)
self.positionSlider.setRange(0, 0) #Range wird nach Einlesen des MediaContent gesetzt
self.positionSlider.sliderMoved.connect(self.setPosition)
Das doofe Ding reagiert nicht mehr auf den "sliderMoved" Event !!!!! Sollte nicht die Subclass alle Methoden / Events der übergeordneten Klasse erben?
Hier mein Event-Handler:
Code: Alles auswählen
def setPosition(self, position):
print('Arrived at SetPosition') #Debug only
self.mediaPlayer.setPosition(position)
Wenn ich anstatt meiner Subclass wieder die QSlider Klasse nehm, dann funzt das, aber dann geht ja der Mausklick nich.....
Vielleicht hat da ja einer eine Idee, danke schon mal im voraus.
Gruß und frohes Schaffen
Henri