python - tkinter 在 Canvas 上可变值

标签 python tkinter

我想在单击按钮时更改 Canvas 上的文本标签。 如果单击“向上”按钮,我希望将标签增加 10;如果单击“向下”按钮,我希望将标签减少 10。

这是我的代码,但我不知道下一步该做什么:

import tkinter as tk

class Sys(tk.Tk, object):
    def __init__(self):
        super(Sys, self).__init__()
        self.title('SYSTEM')
        self.geometry('{0}x{1}'.format(500, 500))   # dimentions
        self.consumtion = 300
        self._build_system() 

    def _build_system(self):
        self.canvas = tk.Canvas(self, bg='lightgreen',  height=500, width=500)   # dimentions
                 '''changeable value'''
        self.cons = self.canvas.create_text(250,250, text = str(self.consumtion))

        '''button'''
        self.but = tk.Button( text = "UP")
        self.but.bind("<Button-1>", lambda event: self.consumption + 10)
        self.but.place(relx=0.8, rely = 0.7, anchor = "center")
        self.but = tk.Button(text = "DOWN")
        self.but.bind("<Button-1>", lambda event: self.consumption - 10)
        self.but.place(relx=0.9, rely = 0.7, anchor = "center")

       # pack all
        self.canvas.pack()

sys=Sys()

最佳答案

您可以使用 Canvas 上记录的 itemconfigure 方法来更改 Canvas 上任何对象的任何配置选项。

例如,您可以编写一个名为 change_conclusion 的方法,该方法采用一个参数来指示值的更改量,并且它可以使用 itemconfigure 来更改显示在 Canvas :

def change_consumption(self, amount):
    self.consumption += amount
    self.canvas.itemconfigure(self.cons, text=self.consumption)

您可以像这样为“向上”按钮绑定(bind)到此函数;对于“向下”,您将传递 -10:

self.but.bind("<Button-1>", lambda event: self.change_consumption(10))

关于python - tkinter 在 Canvas 上可变值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55082728/

相关文章:

python-3.x - 在 Python 3 中使用 tkinter 更改单选按钮的背景颜色

python - 为什么 tkinter 模块在通过命令行运行时会引发属性错误,而在通过 IDLE 运行时却不会?

python - 如何在Python中向直方图添加误差线

python - 在 python 中使用 try except - 成本是多少?

python - 如何按日期 (mm/dd/yyyy) 对巨大的 csv 文件中的记录进行排序?

python - 如何使用 Pycharm 安装 tkinter?

python - Tkinter 文本输入的返回值,关闭 GUI

python - 计算大数组内某些数组的平均值

python - 编程自动循环

python - Tkinter:如何固定窗口打开位置,同时让宽度和高度包裹内容