首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击按钮增加IntVar

点击按钮增加IntVar
EN

Stack Overflow用户
提问于 2015-10-27 16:56:14
回答 1查看 1.3K关注 0票数 1

问题集

我想要创建一个计数器小部件,它可以被三个操作操作:

  • 通过编辑tk.Entry-Textvariable中的数据编辑绑定tk.Entry-Widget
  • 通过单击ttk.Button右键到条目来增加变量
  • 通过单击左转到条目的ttk.Button来减少变量

电流码

代码语言:javascript
复制
    #!/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表达式的方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-27 17:09:41

好吧,没多久。我发现这个问题后,羔羊有结肠连接。

counter=tk.IntVar()在全局版本中无法工作。把它放到函数里就解决了。

代码语言:javascript
复制
    def printerCounterWidget():
        [...]
        counter=tk.IntVar() # removed "global counter"
        [...]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33373988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档