我有一個很大的問題(對我來說)與python gtk模塊。Python的gtk多窗口
我可以打開多窗口;但我不能單獨關閉(一次,一個窗口)。 如果我關閉一個窗口,所有的窗口會自動關閉。 我只想關閉第一個窗口。在關閉窗口後,來一個新窗口(由我選擇)。
例如:
#!/usr/bin/env python
import pygtk
pygtk.require20()
import gtk
class CLS1(object):
def __init__(self):
self.mywindow = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.mywindow.connect("delete_event", gtk.main_quit)
self.btn = gtk.Button("Cls1|Btn")
self.mywindow.add(self.btn)
self.mywindow.show_all()
def main(self):
gtk.main()
class CLS2(object):
def __init__(self):
self.mywindow = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.mywindow.connect("delete_event", gtk.main_quit)
self.btn = gtk.Button("Cls2|Btn")
self.mywindow.add(self.btn)
self.mywindow.show_all()
def main(self):
gtk.main()
class APP(object):
def __init__(self):
self.mywindow = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.mywindow.connect("delete_event", gtk.main_quit)
self.hori = gtk.HBox()
self.btn1 = gtk.Button("AppBtn1")
self.btn2 = gtk.Button("AppBtn2")
self.btn1.connect("clicked", self.show_me , "AppBtn1")
self.btn2.connect("clicked", self.show_me , "AppBtn2")
self.hori.pack_start(self.btn1)
self.hori.pack_start(self.btn2)
self.mywindow.add(self.hori)
self.mywindow.show_all()
def show_me(self, penar, data):
if data=="AppBtn1" :
CLS1().main()
if data=="AppBtn2":
CLS2().main()
gtk.main_quit()
def main(self):
gtk.main()
APP().main()
我想這一點:
1 - 我會運行程序
2- 「APP」 類將工作,並會 「APP」 窗口
3-如果我點擊一個按鈕(AppBt1或AppBtn2); 「APP」窗口將自動關閉(自動;不是由我!)
4-如果我在「APP」窗口(@step 3)上點擊了「AppBtn1」按鈕;或者如果我在「APP」窗口(@step 3)上單擊了「AppBtn2」按鈕,則「CLS1」類將會工作,並且其窗口將打開
; 「CLS2」類將工作,其窗口將打開
我想在程序運行時只在屏幕上的一個窗口;如果我點擊一個按鈕;它的窗口將關閉,並打開一個新窗口(由我選擇,並自動!)
我該怎麼做?並且你能寫下它的代碼:) 非常感謝!