我有一个字符串 'currentMessage' 和一个用于显示它的标签(Label)。
我有一个顶级窗口(Toplevel widget),其中包含一个文本(Text)小部件,以提供 'currentMessage' 的新值。
from tkinter import *
from tkinter import ttk
root = Tk()
mainFrame = ttk.Frame(root)
mainFrame.grid()
currentMessage = 'current Message'
ttk.Label(mainFrame, text = currentMessage).grid(padx = 10, pady = 10)
def updateCurrentMessage(popupWindow):
currentMessage = popupWindow.textBox.get(0.0, END)
def changeValues():
popup = Toplevel(mainFrame)
popup.grid()
textBox = Text(popup, width = 20, height = 5)
textBox.grid(column = 0, row = 0)
textBox.insert(END, 'new message here')
b = ttk.Button(popup, command = lambda: updateCurrentMessage(popup))
b.grid(column = 0, row = 1, padx = 5, pady = 5)
b['text'] = 'Update'
theButton = ttk.Button(mainFrame, command = changeValues, text = 'Click')
theButton.grid(padx = 10, pady = 10)
mainFrame.mainloop()
我试图使用以下函数获取Toplevel中“textBox”文本部件的内容:
def updateCurrentMessage(popupWindow):
currentMessage = popupWindow.textBox.get(0.0, END)
但是我遇到了一个错误
'Toplevel' 对象没有 'textBox' 属性
那么我该如何访问名为“textBox”的小部件的内容,它是“popup”的子部件(仅在调用函数changeValues()时才创建此Toplevel小部件)?
class
,使用self
标记textBox
,使用update_idletasks()
。 - Alok