0
a。有一個簡單的程序,我想從主窗口打開一個子窗口。 b。我有一個打開的按鈕,當我點擊它打開一個新窗口,當我按下子窗口中的關閉按鈕時,它關閉了子窗口。 c。同樣,我想在入口小部件中使用相同的選項。 d。當我點擊條目窗口小部件輸入內容時,會彈出一個提供用戶提示的子窗口。 d。這個函數按照預期打開子窗口,但是當我點擊子進程中的關閉按鈕時,它沒有關閉。單擊輸入窗口時未打開子窗口
#!/tools/bin/python
from Tkinter import *
#import Tkinter as tk
class MyFirstGUI:
cw = None
def __init__(self, master):
self.master = master
master.title("A simple GUI")
self.label = Label(master, text="This is our first GUI!")
self.label.pack()
self.greet_button = Button(master, text="Greet", command=self.greet)
self.greet_button.pack()
self.close_button = Button(master, text="Close", command=quit)
self.close_button.pack()
self.open_button = Button(master, text="Open", command=self.create_window)
self.open_button.pack()
self.scae1 = Entry(root, width=43, bg="yellow")
self.scae1.delete(0, END)
self.scae1.insert(0, 'Enter The World')
self.scae1.bind('<FocusIn>', self.scae1_entry_click)
self.scae1.pack()
def greet(self):
print("Greetings!")
def create_window(self):
self.cw = Toplevel()
self.cw.wm_title("A New Window")
self.l = Label(self.cw, text="This is window")
self.l.pack()
self.cw_text = Text(self.cw)
self.cw_text.insert('1.0', "Please Enter the Following")
self.cw_text.pack()
self.close_button = Button(self.cw, text="Close", command=self.close_window)
self.close_button.pack()
def close_window(self):
if self.cw:
try: self.cw.destroy()
except(): pass # fill in the error here
self.cw = None
def scae1_entry_click(self,event):
if (self.scae1):
if self.scae1.get() == 'Enter The World':
self.scae1.delete(0, "end") # delete all the text in the entry
self.scae1.insert(0, '') #Insert blank for user input
self.scae1.configure(bg="white")
self.create_window()
root = Tk()
my_gui = MyFirstGUI(root)
root.mainloop()
如果有人給出了一些建議或意見,爲什麼當你從入門控件打開它是沒有得到關閉這個子窗口這將是巨大的。
謝謝進階, Vimo
Thanks VRage .. That worked ..是否有可能將兩個選項映射到相同的事件。 self.scae1.bind('',self.scae1_entry_click)? ? –
Vimo
沒問題,請將此答案標記爲正確。確定你可以多次使用'bind'方法:'self.scae1.bind('',self.scae1_entry_click) self.scae1.bind('',self.scae1_entry_click)' –
VRage