vorweg, ich bin noch ein ziemlicher Anfänger, sowohl mit Python als auch GTK und Glade. Mein Problem ist folgendes:
Ich habe eine Dialog Box und ein Hauptprgramm-GUI mit Glade 3.4 designt. Die Dialog Box hat ein Label und die zwei Stock Buttons "Ja" und "Nein" in der Dialog-action_area. Der Dialog ist als Klasse definiert, die von dem Hauptprogramm per Knopfdruck aufgerufen wird. Beim Klick auf "Ja" soll erstmal einfach nur ein "print 'Ja'" ausgeführt werden und der Dialog geschlossen, auf "Nein" soll der Dialog geschlossen werden. Es wird beim Klicken auf die Knöpfe zwar die Box geschlossen, was schon mal gut ist, aber sonst passiert offenbar nix weiter.
Das Ganze sieht so aus, ist alles noch recht unreif, alle Methoden außer der aufrufenden können glaub ich ignoriert werden:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygtk
pygtk.require("2.0")
import gtk
import gtk.glade
class Klauswert:
def __init__(self):
self.glade_datei_haupt = "./glade/klauswert-gui_0.1.4.glade"
self.wTree = gtk.glade.XML(self.glade_datei_haupt, "window1")
self.etikett_zaehler = self.wTree.get_widget("noten_eingabe_feld_etikett_zaehler1")
self.etikett_zaehler.set_text(str(self.zaehler))
self.etikett_zaehler11 = self.wTree.get_widget("noten_eingabe_feld_etikett_zaehler11")
self.etikett_zaehler11.set_text(str(self.zaehler11))
dic = {"on_window1_destroy": self.destroy,
"on_knopf_export1_clicked" : self.knopf_export1_clicked,
"on_knopf_visual1_clicked": self.knopf_visual1_clicked,
"on_knopf_on_knopf_laden1_clicked" : self.knopf_laden1_clicked,
"on_knopf_speichern1_clicked": self.knopf_speichern1_clicked,
"on_knopf_speichernunter1_clicked": self.knopf_speichernunter1_clicked,
"on_knopf_beenden1_clicked": self.knopf_beenden1_clicked,
"on_knopf_zurueck1_clicked": self.knopf_zurueck1_clicked,
"on_knopf_vor1_clicked": self.knopf_vor1_clicked,
"on_knopf_loeschen1_clicked": self.knopf_loeschen1_clicked,
"on_haken_tooltips1_toggled": self.haken_tooltips1_toggled,
"on_haken_speichern1_toggled": self.haken_speichern1_toggled,
"on_knopf_notenschemen1_clicked": self.knopf_notenschemen1_clicked,
"on_sort_eintraege1_changed": self.sort_eintraege1_changed,
"on_knopf_note_plus1_clicked" : self.knopf_note_plus1_clicked,
"on_knopf_note_minus1_clicked" : self.knopf_note_minus1_clicked,
"on_knopf_note_plus11_clicked" : self.knopf_note_plus11_clicked,
"on_knopf_note_minus11_clicked" : self.knopf_note_minus11_clicked}
self.wTree.signal_autoconnect(dic)
self.liststore = gtk.ListStore(int, str, float)
self.treeview = self.wTree.get_widget("treeview1")
self.treeview.set_model(self.liststore)
renderer = gtk.CellRendererText()
spalte1 = gtk.TreeViewColumn("#", renderer, text=0)
spalte2 = gtk.TreeViewColumn("ID", renderer, text=1)
spalte3 = gtk.TreeViewColumn("Note", renderer, text=2)
self.treeview.append_column(spalte1)
self.treeview.append_column(spalte2)
self.treeview.append_column(spalte3)
zaehler = 0
zaehler11 = 0
def teilnehmer_anzahl(self):
return self.zaehler + self.zaehler11
def destroy(self, widget):
gtk.main_quit()
def knopf_export1_clicked(self, widget):
pass
def knopf_visual1_clicked(self, widget):
pass
def knopf_laden1_clicked(self, widget):
pass
def knopf_speichern1_clicked(self, widget):
pass
def knopf_speichernunter1_clicked(self, widget):
pass
def knopf_beenden1_clicked(self, widget):
gtk.main_quit()
def knopf_zurueck1_clicked(self, widget):
pass
def knopf_vor1_clicked(self, widget):
pass
# Aufrufende Methode
def knopf_loeschen1_clicked(self, widget):
liste_loeschen_dialog = ListeLoeschenDialog()
antwort = liste_loeschen_dialog.run()
if (antwort == gtk.RESPONSE_YES):
print 'Ja'
def haken_tooltips1_toggled(self, widget):
pass
def haken_speichern1_toggled(self, widget):
pass
def knopf_notenschemen1_clicked(self, widget):
pass
def sort_eintraege1_changed(self, widget):
pass
def knopf_note_plus1_clicked(self, widget):
self.zaehler += 1
self.etikett_zaehler.set_text(str(self.zaehler))
iter = self.liststore.append([self.teilnehmer_anzahl(), 'später', 1.0])
treeiter = self.liststore.get_iter(self.zaehler - 1)
value = self.liststore.get_value(iter, 0)
value2 = self.liststore.get(iter, 0, 1, 2) #spalten: teilnehmer-index, teilnehmer-id, teilnehmer-note
value3 = self.liststore.get_value(treeiter, 0)
value4 = self.liststore.get(treeiter, 0, 1, 2)
def knopf_note_minus1_clicked(self, widget):
self.zaehler -= 1
if self.zaehler < 0:
self.zaehler = 0
print self.zaehler
self.etikett_zaehler.set_text(str(self.zaehler))
treeiter = self.liststore.remove(iter)
return self.zaehler
def knopf_note_plus11_clicked(self, widget):
self.zaehler11 += 1
self.etikett_zaehler11.set_text(str(self.zaehler11))
iter = self.liststore.append([self.teilnehmer_anzahl(), 'später', 1.0])
return self.zaehler11
def knopf_note_minus11_clicked(self, widget):
self.zaehler11 -= 1
if self.zaehler11 < 0:
self.zaehler11 = 0
self.etikett_zaehler11.set_text(str(self.zaehler11))
return self.zaehler11
class ListeLoeschenDialog:
def __init__(self):
self.glade_datei_haupt = "./glade/klauswert-gui_0.1.4.glade"
def run(self):
"""Diese Funkt. soll den Dialog zeigen"""
self.wTree = gtk.glade.XML(self.glade_datei_haupt, "dialog1")
self.dlg = self.wTree.get_widget("dialog1")
self.antwort = self.dlg.run()
self.dlg.destroy()
return self.antwort
if __name__ == "__main__":
print __name__
instanz = Klauswert()
gtk.main()
http://webfilehosting.com/LUXUMJ1MCK7G/klauswert.tar.gz
Was läuft da falsch? Ich vermute es hat mit dieser run() Funktion in "ListeLoeschenDialog" zu tun?
Malte