ShowModal() auch für Frames ?

Plattformunabhängige GUIs mit wxWidgets.
Antworten
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Montag 3. März 2008, 00:42

Hallo,
meinem selbst gebastelten Dialog möchte ich die Exklusivität geben, die
man bei wx.Dialog() über ShowModal() erreicht. Funktioniert das bei einem Frame über einen bestimmten Style, oder gibt es eine Funktion dafür?

Gruß
Seven
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Montag 3. März 2008, 08:56

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 6. März 2008, 10:57

Klappt!

Thanx, Seven
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Donnerstag 6. März 2008, 15:27

Brauchst du die modale Anzeige WIRKLICH?
In den allermeisten Fällen nervt die nur ohne Ende.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Samstag 8. März 2008, 09:06

Hi mkallas,

mich nervt die modale Darstellung bei Dialogboxen auch oft, aber in meinem Fall muß sie sein. Aus Gründen, die jetzt zu weit gehen würden, muß ich das Öffnen von Dialogen dem Rest des Programmes mitteilen. Das geschieht über ein Flag.

Code: Alles auswählen

def alert_connectionfailed(self):
        self.dialogflag = True
        dlg = wx.MessageDialog(None, 'connection to Server failed', "System Message", wx.OK | wx.ICON_ERROR)
        if dlg.ShowModal() == wx.ID_OK:
            self.dialogflag = False
        dlg.Destroy()
Da ich nicht jedem Dialog sein eigenes Flag verpassen möchte, um es dann mit if (flag1 or flag2 or flag3 or...) abzufragen, gibt es ein Globales für alle (dialogflag).

Sollten mehrere Dialoge zur selben Zeit geöffnet sein, würde das Schließen eines der geöffneten Dialoge zur Folge haben, dass

Code: Alles auswählen

dialog = False
gesetzt wird, obwohl noch Dialoge offen sind.
Daher muß ich mit MakeModal() dafür sorgen, dass immer nur ein Dialog geöffnet ist.

Grüße,
Seven
Antworten