问题集
我想要创建一个计数器小部件,它可以被三个操作操作:
tk.Entry-Textvariable中的数据编辑绑定tk.Entry-Widgetttk.Button右键到条目来增加变量ttk.Button来减少变量电流码
#!/usr/bin/env python2
# -*- encoding: utf-8 -*-
import Tkinter as tk
import ttk
counter=tk.IntVar()
def printerCounterWidget(master):
"""
This will specify the appearance of the PrintCounter
"""
#Create the UI
__frame = ttk.Frame(master)
__frame.grid()
global counter
####################################################################
ttk.Button(__frame, text="-", command=lambda: counter.set( counter.get() - 1 ) ).grid(row=0, column=0)
####################################################################
ttk.Entry(__frame, textvariable=counter).grid(row=0, column=1)
####################################################################
ttk.Button(__frame, text="+", command=lambda: counter.set( counter.get() + 1 ) ).grid(row=0, column=2)
####################################################################
if __name__=="__main__":
app=tk.Tk()
ttk.Label(app, text="printerCounterWidget").grid()
printerCounterWidget(app)
app.mainloop()不幸的是,我没有设法(至少到目前为止)使lambda表达式正常工作。
I do知道,当前调用永远无法工作,因为它在声明时被调用。
有人能为我指出正确设置lambda表达式的方向吗?
发布于 2015-10-27 17:09:41
好吧,没多久。我发现这个问题后,羔羊有结肠连接。
counter=tk.IntVar()在全局版本中无法工作。把它放到函数里就解决了。
def printerCounterWidget():
[...]
counter=tk.IntVar() # removed "global counter"
[...]https://stackoverflow.com/questions/33373988
复制相似问题