Seite 1 von 1

Initialisierungsdialog einblenden

Verfasst: Freitag 3. März 2006, 19:34
von george
Hallo,

ich habe eine Programm(wx.App und wx.Frame) und möchte gerne während der Initialisierungsphase(__init__) ein Frame anzeigen, dass die aktuellen Initialisierungsschritte anzeigt. Bedingt durch interne Funktionalität(Abfragen,...) kann der Programmstart länger dauern. Deshalb möchte ich dem Anwender gerne eine Rückkopplung geben, welcher Initialisierungsschritt gerade läuft.
Hierzu habe ich in der __init__ ein Frame aufgerufen und angezeigt

Code: Alles auswählen

def __init__(self, parent):
        
        from Views import viewInit
        reload(viewInit)
        objView = viewInit.create(parent)
        #refresh Controls
        wx.GetApp().Yield()
        objView.Show()

        #stuff

        objView.Destroy()
Mit dem oben dargestellten Code wird das Initialisierungsframe angezeigt.
Das Problem ist aber, dass die darauf integrierten Controls(wx.StaticText) nicht gezeichnet werden.
Ich habe versucht dies mit einem(wx.GetApp().Yield() bzw. wx.Yield()) zu lösen, hat aber nichts gebracht. Erst nachdem das Hauptframe fertig initialisiert ist, sind auch alle Controls im Initialisierungsframe dargestellt.

Wie kann ich dieses Problem umgehen???
Gibt es programmiertechnisch gesehen bessere Alternativen um den Anwender eine Rückkopplung zum Initialisierungsstand zu geben???

Danke

gruss george

Re: Initialisierungsdialog einblenden

Verfasst: Samstag 4. März 2006, 09:30
von Francesco
george hat geschrieben:Hallo,

ich habe eine Programm(wx.App und wx.Frame) und möchte gerne während der Initialisierungsphase(__init__) ein Frame anzeigen, dass die aktuellen Initialisierungsschritte anzeigt. Bedingt durch interne Funktionalität(Abfragen,...) kann der Programmstart länger dauern. Deshalb möchte ich dem Anwender gerne eine Rückkopplung geben, welcher Initialisierungsschritt gerade läuft.
Spontan fällt mir ein:

1) Du kennst den wx.Splashscreen?


2) Hast Du Boa Constructor auf deiner Festplatte?
Ist vollkommen in wxPyhton geschrieben.
Auch hier dauert der Programmstart relativ lang und
es werden die einzelnen Schritte der Module, die geladen
werden, angezeigt.

Verfasst: Samstag 4. März 2006, 10:33
von george
Hallo Francesco,

Spontan fällt mir ein:

1) Du kennst den wx.Splashscreen?
Das ist genau das, was ich suche. Werde mich damit mal beschäftigen.
Ich danke dir vielmals.

greets george