gtk.Notebook in mehreren Klassen
Verfasst: Sonntag 22. Februar 2009, 23:35
Ich habe ein Notebook mit 2 Seiten, sobald eine andere aufgerufen wird, soll er in eine andere Klasse wechseln, und diese neue Klasse soll ganz unabhängig von der vorherigen Klasse sein, alle Funktionen auf der neuen Seite soll auch nur in dieser Klasse ausgeführt werden. Ich benutze eine Glade Datei, im Prinzip hätte ich es gerne exakt so, wie in diesem Beispiel von diesem Thread http://www.python-forum.de/viewtopic.php?=&p=45961
Das einzige Problem ist eben nur, das ich ein Notebook benutze, und wenn ich das Fenster aus der Glade Datei starte, dann definiert er ja gleich das ganze Notebook. Wie kann ich es machen, das dann sobald eine andere Seite aufgerufen wurde, er dann erst die Events definiert, also das dictionary an die xml datei? Denn so wie in dem Beispiel, geht es mit einem Notebook leider nicht.
Danke
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import pygtk
pygtk.require("2.0")
import gtk
import gtk.glade
class Dialog1(object):
def on_dialog1_response(self, widget, data = None):
self.window.destroy()
print data
if data == gtk.RESPONSE_OK:
print "OK"
elif data == gtk.RESPONSE_APPLY:
print "Apply"
elif data == gtk.RESPONSE_CANCEL:
print "Cancel"
def __init__(self, parent = None):
self.wTree = gtk.glade.XML("gladetest.glade", "dialog1")
self.window = self.wTree.get_widget("dialog1")
dic = {}
for key in dir(self.__class__):
dic[key] = getattr(self, key)
self.wTree.signal_autoconnect(dic)
if parent:
self.window.set_transient_for(parent)
self.window.show()
class Window1(object):
def on_button1_clicked(self, widget, data = None):
diag = Dialog1(self.window)
def on_window1_destroy(self, widget, data = None):
gtk.main_quit()
def __init__(self):
self.wTree = gtk.glade.XML("gladetest.glade", "window1")
self.window = self.wTree.get_widget("window1")
dic = {}
for key in dir(self.__class__):
dic[key] = getattr(self, key)
self.wTree.signal_autoconnect(dic)
self.window.show()
def main():
win1 = Window1()
gtk.main()
return 0
if __name__ == "__main__":
main()
Danke