【问题标题】:Having trouble updating int label but can update string label fine更新 int 标签时遇到问题,但可以正常更新字符串标签
【发布时间】:2019-10-15 20:35:10
【问题描述】:

我确定有人会在我发布它的第二次将其标记为重复,但我向你保证,我已经找了好几个小时了。我是 tkinter 的新手,所以请多多包涵,因为如果可能的话,我想要一个非常直接的答案。与此相关的任何事情现在对我来说都有点复杂,我觉得它没有回答我的问题。

我知道如何使用 textvariable 和 StringVar 进行标签更新。但是,我正在尝试更新整数,但由于某种原因我似乎无法弄清楚。数字更新并通过控制台打印,但我无法找出正确的语法让它显示在界面上。它要么只显示 0(如默认变量所示),要么根本没有文本,这取决于我将代码更改为什么)

所以我所做的只是增加一个数字。让我们暂时搁置它。如果有人有任何资源来获得更简单的文档,请告诉我,因为据我所知,tkinter 在在线文档中通常非常晦涩难懂。

my_count = 0

def increase_mycount():
    global my_count
    increment = int(my_count) + 1
    my_count = str(increment)
    print(my_count)

Label(root, textvariable=my_count).grid(row=2, column=1)
Button(root, text="+", command=inc_mycount).grid(row=3, column=2)

这是现在的位置,我尝试将 my_count 更改为 IntVar 和 StringVar,但我收到错误消息,提示我不能将 + 与 int 和 intvar 或 int 与 stringvar 一起使用

我错过了什么非常简单的东西吗?我正在努力寻找关于 tkinter 的综合文档。很容易找到 Python 信息,但实际上并非如此。我正在将我想要的所有信息组织到一些谷歌文档中。

感谢您的付出。这似乎应该是一件非常简单的事情,但我只使用为我更新内容的引擎。我只为此使用 tkinter、一个 .py 文件和 cmd。

另一个注意事项,我似乎也不能使用 .set() ,就像我可以使用字符串一样。所以我只是在语法上苦苦挣扎,除非标签上的数字有不同的方法。

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    在使用textvariable 时,您必须使用 tkinter 的变量对象之一。在这种情况下,IntVar

    import tkinter as tk
    
    root = tk.Tk()
    
    my_count = tk.IntVar()
    
    def increase_mycount():
        current = my_count.get()
        my_count.set(current+1)
    
    tk.Label(root, textvariable=my_count).grid(row=2, column=1)
    tk.Button(root, text="+", command=increase_mycount).grid(row=3, column=2)
    
    root.mainloop()
    

    【讨论】:

    • 非常感谢。我以前没有见过这种格式。
    猜你喜欢
    • 2021-11-09
    • 2015-10-06
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 2017-07-08
    相关资源
    最近更新 更多