Seite 1 von 1
2 Fragen
Verfasst: Freitag 24. Juni 2005, 14:14
von Damaskus
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
Re: 2 Fragen
Verfasst: Freitag 24. Juni 2005, 17:15
von Leonidas
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.
Das geht ganz einfach. Ist aber auch in der PyGTK Demo (in etwas anderer Form) enthalten.
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()
Damaskus hat geschrieben:Und gleich noch die 2 Frage.
Wie kann ich ein "Kind-Fenster" schließen ohne das Hauptfenster zu zerstören?
Schon etwas komplizierter, aber immer noch lösbar:
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()
Re: 2 Fragen
Verfasst: Freitag 24. Juni 2005, 18:55
von gerold
Damaskus hat geschrieben: wie bekomme ich mit GTK einen Modalen Dialog erstellt?
Hi Damaskus!
Dazu möchte ich noch diesen Link beisteuern.
http://www.pygtk.org/pygtk2reference/cl ... ialog--run
mfg
Gerold
Verfasst: Sonntag 26. Juni 2005, 19:10
von Damaskus
Thx für die Hilfe so klappt es.
Ich dachte irgendwie das mit dem Schließen geht einfacher.
Trotzdem Danke
Verfasst: Sonntag 26. Juni 2005, 23:21
von Damaskus
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...
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()
Verfasst: Montag 27. Juni 2005, 12:23
von Leonidas
Damaskus hat geschrieben:Wie bekomme ich eigentlich den Dialog mit Inhalt gefüllt?
Ich habs schon mit X Varianten probiert aber nix klappt.
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).
Verfasst: Montag 27. Juni 2005, 15:05
von XT@ngel als Gast
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