Initialisierungsdialog einblenden

Plattformunabhängige GUIs mit wxWidgets.
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

Initialisierungsdialog einblenden

Beitragvon george » Freitag 3. März 2006, 19:34

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
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Re: Initialisierungsdialog einblenden

Beitragvon Francesco » Samstag 4. März 2006, 09:30

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.
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

Beitragvon george » Samstag 4. März 2006, 10:33

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder