我在临时窗口中使用 tkinter Entry 小部件从用户那里收集信息。我希望能够将该信息用于各种事情:在另一个窗口的标签中重写它,将其转换为整数进行计算,将其值作为字符串写入文件,等等。在这个精简的代码中,我有两个文本变量,并且我使用引号来命名一个而不是另一个。据我了解,使用引号是错误的——例如,没有引号的变量可以与 get 一起正常工作。麻烦的是,当我将它用作不同窗口中标签的文本变量时,没有引号的那个不能正确复制。我在这里想念什么?
from tkinter import *
from tkinter import ttk
root = Tk()
sheetid = StringVar
sheetname = StringVar
def dosheet():
sheet = Toplevel(root)
ttk.Label(sheet, text="Sheet ID:").grid(row=0)
ttk.Label(sheet, textvariable=sheetid, font=(11)).grid(row=1)
ttk.Label(sheet, text="Sheet Name:").grid(row=2)
ttk.Label(sheet, textvariable="sheetname", font=(11)).grid(row=3)
#end dosheet
def new():
def finish():
start.destroy()
dosheet()
start = Toplevel(root)
start.title("New sheet dialog")
ttk.Label(start, text="Sheet ID:").grid(row=1)
ttk.Entry(start, textvariable=sheetid).grid(row=2)
ttk.Label(start, text="Sheet name:").grid(row=3)
ttk.Entry(start, textvariable="sheetname").grid(row=4)
ttk.Button(start, text="Close", command=finish).grid(row=5)
#end new
main = ttk.Frame(root, padding="16 12 12 12")
main.grid()
ttk.Label(main, text="Start new sheet:").grid()
ttk.Button(main, text="New", command=new).grid()
root.mainloop()