【发布时间】:2012-12-21 08:44:42
【问题描述】:
我对 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”窗口上的“AppBtn1”按钮(@step 3); "CLS1" 类将起作用并且其窗口将打开
,或者如果我点击了“APP”窗口上的“AppBtn2”按钮(@step 3); “CLS2”类将工作,其窗口将打开
我希望程序运行时屏幕上只有一个窗口;如果我点击一个按钮;它的窗口将关闭并打开一个新窗口(由我选择,并且自动!)
我该怎么做?你能写它的代码吗:) 非常感谢!
【问题讨论】:
标签: python linux window gtk multi-window