首页 > 解决方案 > 每当我单击 tkinter 中的按钮时,我都想增加一个变量

问题描述

大家好,请问我正在使用此代码,我希望它compteur在单击按钮时增加一个名为的变量,我希望它在__init__函数中增加。

但问题是这个变量总是保持为 0

import tkinter as tk
from tkinter import ttk
from PIL import ImageTk, Image

class MainUi(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        self.geometry("300x400")
        self.geometry("+500+100")
        container = tk.Frame(self)
        container.pack(side="top", fill="both", expand=True)
    
        self.frames = {}
        frame = StartPage(container, self)
        self.frames[StartPage] = frame
        frame.place(relx=0, rely=0, relwidth=1, relheight=1)




class StartPage(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.configure(background='white')
        # self.master.configure(background='black')
        self.compteur = 0
        button1 = ttk.Button(self, text="Next", width=7, command = lambda: self.next_clicked())
        button1.place(relx=0.8, rely=0.9)  

        print(self.compteur)

    def next_clicked(self):
        self.compteur += 1
        
app = MainUi()
app.mainloop()

标签: pythonclasstkinter

解决方案


问题不在于self.compteur没有引发,而是print(self.compteur)将打印引发值的语句放置在next_clicked(self)方法之外。这应该有效:

def next_clicked(self):
    self.compteur += 1
    print(self.compteur)

推荐阅读