我有一个字符串“currentMessage”和一个标签来显示它。我有一个 Toplevel 小部件,其中包含一个 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()
我尝试使用此函数获取顶层的“textBox”文本小部件的内容:
def updateCurrentMessage(popupWindow):
currentMessage = popupWindow.textBox.get(0.0, END)
但我有一个错误
'Toplevel' 对象没有属性 'textBox'
那么我如何访问小部件'textBox'的内容,它是'popup'的子小部件(这个Toplevel小部件仅在调用函数changeValues()时创建)?