slider problem bei mp3s

Plattformunabhängige GUIs mit wxWidgets.
Antworten
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Schönen Tag und ein frohes neues Jahr wünsche ich erstmal ;)
Ich sitze gerade vor einem Problem wobei mir auch nicht
die wx Demo helfen konnte. Ich hab einen Slider der die Position
im Lied angibt. Starte ich ein Lied läuft er mit so wie es sein sollte.
Wenn ich nun allerdings den SLider anklicke springt dieser, wie
in der wx Demo direkt an Ende und beendet das Lied.

Code: Alles auswählen

slider = wx.Slider(self, -1, 0, 0, 0)
self.slider = slider
self.Bind(wx.EVT_SLIDER, self.changePosition, slider)

def changePosition(self, event):
    offset = self.slider.GetValue()
    self.mc.Seek(offset)
Die größe des SLiders wird über eine andere Funktion, die aber wohl unwichtig ist, gegeben.
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Hallo pr0stAta,

kann ich leider nicht nachvollziehen.
(getestet mit 2.6.1.1, WinXP)

Wenn du diese Datei ins Demo verzeichnis kopierst (z.B. slider1.py),
und von dort aufrufst, kannst du es starten.
Bei mir funktioniert das wie erwartet.

Code: Alles auswählen

import  wx

#----------------------------------------------------------------------

class TestPanel(wx.Panel):
    def __init__(self, parent, log):
        wx.Panel.__init__(self, parent, -1)
        self.log = log
        self.count = 0

        wx.StaticText(self, -1, "This is a wx.Slider.", (45, 15))

        slider = wx.Slider(
            self, 100, 25, 1, 100, (30, 60), (250, -1), 
            wx.SL_HORIZONTAL | wx.SL_AUTOTICKS | wx.SL_LABELS 
            )

        slider.SetTickFreq(5, 1)
        self.slider = slider
        slider.Bind(wx.EVT_SLIDER, self.changePosition, slider)

    def changePosition(self, event):
        offset = self.slider.GetValue() 
        print offset


#----------------------------------------------------------------------

def runTest(frame, nb, log):
    win = TestPanel(nb, log)
    return win

#----------------------------------------------------------------------




overview = """\
A slider is a control with a handle which can be pulled back and forth to 
change the value.

In Windows versions below Windows 95, a scrollbar is used to simulate the slider. 
In Windows 95, the track bar control is used.

"""


if __name__ == '__main__':
    import sys,os
    import run
    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Dein Beispiel läuft bei mir auch perfekt.
Ich meine in diesem Fall auch eher die Media Control Demo,
in der der Slider versagt. Eigentlich sollte man nämlich mit
self.mc.Seek(WERT) ihm dem Wert der aktuellen Slider Position
mitgeben können und er springt dann in die passende Stelle
der Musik Datei.
*edit* Könnte mir vielleicht einer sagen, ob die MediaCtrl Demo
bei ihm einwandfrei funktioniert? D.h. ob man den Slider an die
Position im Lied im schieben kann? Das würde mir schon helfen,
da ich ja wissen muss, ob es an mir liegt oder an wx allgemein :p
Antworten