我有一个很大的问题(对我来说)与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”类将工作,其窗口将打开
我想在程序运行时只在屏幕上的一个窗口;如果我点击一个按钮;它的窗口将关闭,并打开一个新窗口(由我选择,并自动!)
我该怎么做?并且你能写下它的代码:) 非常感谢!