【问题标题】:Tkinter GUI counter not counting PythonTkinter GUI 计数器不计算 Python
【发布时间】:2021-04-12 09:36:56
【问题描述】:

我的程序应该是一个非常简单的计数器,但我无法弄清楚为什么在单击按钮时它不计数。

from tkinter import *

class Counter:

    def __init__(self):
        
        self.__value = 0
        self.__main_window = Tk()

        self.__current_value = Label(self.__main_window, text=self.__value)
        self.__current_value.pack()
        
        self.__increase_button = Button(self.__main_window, text='Increase',
                                        command=self.increase)

    def increase(self):
        self.__value += 1

def main():

    Counter()


if __name__ == "__main__":
    main()

【问题讨论】:

  • 你的意思是不要缩进def increase()那么远?
  • 嗨,对不起,它被放置了额外的 4 个空格,我现在已经修复了。但现在我的代码原来是这样的,这不起作用
  • 我已经回答了问题的症结,但我也注意到您的self.__increase_button 按钮永远不会打包到 GUI 中并且不会显示。您可能希望在声明变量后添加self.__increase_button.pack()
  • 也非常感谢您在这些方面提供帮助,我是 GUI 新手,所以我一直忘记那些小细节。它对您的评论也很有帮助!

标签: python class tkinter counter


【解决方案1】:

tkinter 中标签的文本配置不会自动更新。存储在self.__value 变量中的值被评估并显示为标签。

self.__value 值的后续更改不会反映在 GUI 中。

当您更新self.__value 变量时,您还需要重新配置self.__current_value 标签以反映这些更改。您可以更新您的 increase 方法以重新配置标签,如下所示

def increase(self):
    self.__value += 1
    self.__current_value.config(text=self.__value)

【讨论】:

    猜你喜欢
    • 2016-12-09
    • 2017-11-05
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2021-03-25
    相关资源
    最近更新 更多