1
下面以菜單命令示例(將文本加載到文本字段中)生成一個Tkinter文本字段。 應該有一個標籤作爲顯示剛執行的命令的狀態行。所以當點擊「加載」時,我想要顯示「文件加載」。 我正在努力將self.status
分成appmenu
。原因:app
必須先被呼叫(因爲self.text
),但爲了self.status
在app
,appmenu
應該先被呼叫。沒有?請幫忙。 感謝預期。Python Tkinter:如何獲取有關菜單操作的狀態消息?
import Tkinter
import tkFileDialog
class App (object):
def __init__(self, master, status):
self.status = status
frame = Tkinter.Frame(master)
frame.pack(fill="both", expand=1)
self.text_field(frame)
self.status_line(frame)
def status_line (self, frame):
statusline = Tkinter.Label(frame, text = self.status)
statusline.pack()
def text_field(self, frame):
self.text = Tkinter.Text(frame)
self.text.pack(fill="both", expand=1)
class App_Menu(object):
def __init__(self, master, text, status):
self.text = text
self.master = master
menubar = Tkinter.Menu(master)
self.menuBar = Tkinter.Menu(master)
master.config(menu=self.menuBar)
self.fillMenuBar(text)
def fillMenuBar(self, text):
self.menuFile = Tkinter.Menu(self.menuBar, tearoff=False)
self.menuFile.add_command(label="Open",command=self.load)
self.menuBar.add_cascade(label="File",menu=self.menuFile)
def load(self):
self.file=tkFileDialog.askopenfile()
self.text.delete(1.0, Tkinter.END)
if self.file:
self.text.insert(1.0,self.file.read())
self.status = "file loaded"
root = Tkinter.Tk()
status = "status"
app = App(root, status)
appmenu = App_Menu(root, app.text, status)
root.mainloop()