Hallo,
wie bekomme ich mit GTK einen Modalen Dialog erstellt?
Also z.B. Als Fehlermeldung oder beim Programm beenden.
Das mit dem gtk_message_dialog will bei mir nicht. Bzw. ich mach da irgendwas falsch.
Und gleich noch die 2 Frage.
Wie kann ich ein "Kind-Fenster" schließen ohne das Hauptfenster zu zerstören?
Thx
Damaskus
2 Fragen
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das geht ganz einfach. Ist aber auch in der PyGTK Demo (in etwas anderer Form) enthalten.Damaskus hat geschrieben:wie bekomme ich mit GTK einen Modalen Dialog erstellt?
Also z.B. Als Fehlermeldung oder beim Programm beenden.
Das mit dem gtk_message_dialog will bei mir nicht. Bzw. ich mach da irgendwas falsch.
Code: Alles auswählen
#!/usr/bin/env python
# -*- encoding: latin-1 -*-
import gtk
def show(widget, parent):
d = gtk.Dialog("Title", parent=w, buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
result = d.run()
if result == gtk.RESPONSE_CANCEL:
gtk.main_quit()
d.destroy()
w = gtk.Window()
b = gtk.Button('Show')
b.connect('clicked', show, w)
w.add(b)
w.show_all()
gtk.main()
Schon etwas komplizierter, aber immer noch lösbar:Damaskus hat geschrieben:Und gleich noch die 2 Frage.
Wie kann ich ein "Kind-Fenster" schließen ohne das Hauptfenster zu zerstören?
Code: Alles auswählen
#!/usr/bin/env python
# -*- encoding: latin-1 -*-
import gtk
class BadWindows(object):
windowopen = 1
def exitgtk(self, widget, event):
self.windowopen -= 1
if self.windowopen == 1:
# the last open window
gtk.main_quit()
def newwin(self, widget):
self.createwin()
def createwin(self):
w = gtk.Window()
w.connect('delete_event', self.exitgtk)
b = gtk.Button('Newwin')
b.connect('clicked', self.newwin)
w.add(b)
w.show_all()
self.windowopen += 1
return w
def main():
bw = BadWindows()
w = bw.createwin()
gtk.main()
if __name__ == '__main__':
main()
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Damaskus!Damaskus hat geschrieben: wie bekomme ich mit GTK einen Modalen Dialog erstellt?
Dazu möchte ich noch diesen Link beisteuern.
http://www.pygtk.org/pygtk2reference/cl ... ialog--run
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- Damaskus
- Administrator
- Beiträge: 995
- Registriert: Sonntag 6. März 2005, 20:08
- Wohnort: Schwabenländle
Hmm...
Wie bekomme ich eigentlich den Dialog mit Inhalt gefüllt?
Ich habs schon mit X Varianten probiert aber nix klappt.
Hier einfach mal der Codefetzen...
Wie bekomme ich eigentlich den Dialog mit Inhalt gefüllt?
Ich habs schon mit X Varianten probiert aber nix klappt.
Hier einfach mal der Codefetzen...
Code: Alles auswählen
def errordialog(widget):
dialog = gtk.Dialog("rock mich", None, gtk.DIALOG_MODAL, (gtk.STOCK_OK, gtk.RESPONSE_OK))
vbox = gtk.VBox(False, 8)
stock = gtk.image_new_from_stock(gtk.STOCK_DIALOG_QUESTION, gtk.ICON_SIZE_DIALOG)
label = gtk.Label("Text")
vbox.pack_start(stock, True, True, 0)
#vbox.pack_start(label, False, 0)
gtk.Dialog.pack_start(vbox, True, True, 0)
#vbox = gtk.VBox(False, 0)
#vbox.add(hbox)
#show_all()
dialog.run()
dialog.destroy()
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich habe den Code aus dem dialogs.py Beispiel genommen, das solltest du dir mal ansehen, ich habe keine Lust das Ding nochmal 1:1 zu posten (Jedoch wenn es Probleme gibt, kannst du ruhig fragen).Damaskus hat geschrieben:Wie bekomme ich eigentlich den Dialog mit Inhalt gefüllt?
Ich habs schon mit X Varianten probiert aber nix klappt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hallo, welche art von Inhalt meinst du?
Du kannst auch einen blick auf gtk.MessageDialog werfen. http://www.pygtk.org/pygtk2reference/cl ... ialog.html
Dieser erbt von gtk.Dialog. Zum formatieren des Textes kannt du Pango Markup benutzen.
Alternativ kannst du auch das Attribut "label" durch dein eigenes austauschen.
MfG
Andreas
Du kannst auch einen blick auf gtk.MessageDialog werfen. http://www.pygtk.org/pygtk2reference/cl ... ialog.html
Dieser erbt von gtk.Dialog. Zum formatieren des Textes kannt du Pango Markup benutzen.
Alternativ kannst du auch das Attribut "label" durch dein eigenes austauschen.
MfG
Andreas