Throbber wird nicht richtig angezeigt [SOLVED]
Verfasst: Montag 3. Juli 2006, 15:34
Absicht:
Ich möchte in meinem Programm eine längere Datenübertragung ausführen (ca. 2min) und brauche deshalb einen Throbber, der während dieser Zeit angezeigt wird. Stellvertretend für die Datenübertragung habe ich im nachfolgenden Code wx.Sleep(10) verwendet, da auch meine Datenübertragung aus einer einzelnen Funktion besteht, die das Hauptprogramm stillstehen lässt.
Problem:
Der Throbber bleibt während der Datenübertragung weiß (wird nicht aktualisiert), obwohl dieser ja eigentlich in einem eigenen Thread laufen müsste!?
Kann mir jemand sagen, wo der Fehler liegt?
Ich möchte in meinem Programm eine längere Datenübertragung ausführen (ca. 2min) und brauche deshalb einen Throbber, der während dieser Zeit angezeigt wird. Stellvertretend für die Datenübertragung habe ich im nachfolgenden Code wx.Sleep(10) verwendet, da auch meine Datenübertragung aus einer einzelnen Funktion besteht, die das Hauptprogramm stillstehen lässt.
Problem:
Der Throbber bleibt während der Datenübertragung weiß (wird nicht aktualisiert), obwohl dieser ja eigentlich in einem eigenen Thread laufen müsste!?
Kann mir jemand sagen, wo der Fehler liegt?
Code: Alles auswählen
import wx
import wx.lib.throbber as throb
import throbImages
#
if __name__=="__main__":
def on_start_transfer(event):
images = [throbImages.catalog[i].getBitmap()
for i in throbImages.index]
my_throbber = throb.Throbber(throb_frame,-1,images)
#
throb_frame = wx.Frame(None,-1, size = (35,35), style = wx.SIMPLE_BORDER)
throb_frame.Show()
#
my_throbber.Start()
throb_frame.MakeModal(True)
wx.Sleep(10) # Stands for transfer process.
throb_frame.MakeModal(False)
#
app = wx.PySimpleApp()
frame = wx.Frame(None)
btn = wx.Button(frame,-1,'Start')
#
frame.Bind(wx.EVT_BUTTON, on_start_transfer, btn)
#
frame.Show()
#
app.MainLoop()