1

我一直在尝试使用 TTK 和 python 3.2 使用条目小部件并将变量映射到函数

我在这里不断收到语法错误,但找不到。

from tkinter import *
from tkinter import ttk

def overlap(*args):
    start = begin.get()
    stop = end.get()
    time.set(int(stop)-int(start))

root = Tk()
root.title('RadioButton')

mainframe=ttk.Frame(root, padding='3 3 12 12')
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)

begin = StringVar()
end = StringVar()
time = StringVar()

start_entry = ttk.Entry(mainframe, textvariable = begin)
start_entry.grid(column=1, row=1, sticky=(E, W)

end_entry = ttk.Entry(mainframe, textvariable = end)
end_entry.grid(column=2, row=1, sticky=(E, W)

ttk.Lable(mainframe, textvariable=time).grid(column=1, row=2, sticky=(E, W))

ttk.Button(mainframe, text='calculate', command=overlap).grid(column=1, row=3, sticky=(E, W))

begin_entry.focus()

root.bind('<Return>', overlap)

root.mainloop()

我迷路了,我错过了什么?它给我的错误:

end_entry = ttk.Entry(大型机,文本变量 = 结束)

SyntaxError:无效的语法

我假设您可以告诉我我对 ttk 了解不多,所以请尝试向我解释一下,就像我大约 5 岁一样。

4

1 回答 1

1

您在之前的行中缺少右括号:

start_entry.grid(column=1, row=1, sticky=(E, W)
#                                              ^
end_entry = ttk.Entry(mainframe, textvariable = end)

根据经验,如果您发现遇到莫名其妙的语法错误,请确保前面的行已正确关闭括号。

于 2013-12-16T04:53:57.553 回答