0
from tkinter import *

root = Tk()

numL = 0
numD = 0

root.geometry("200x100")

def like():
    root_label1.config(text=numL+1)

def dlike():
    root_label2.config(text=numD+1)

root_button1 = Button(root, text="Like", command=like)
root_button2 = Button(root, text="Dislike", command=dlike)

root_label1 = Label(root, text=numL)
root_label2 = Label(root, text=numD)

root_button1.grid(row=0,column=0)
root_button2.grid(row=0,column=1)

root_label1.grid(row=1,column=0)
root_label2.grid(row=1,column=1)

root.mainloop()

このコードはエラーなしで機能していますが、好きなボタンまたは嫌いなボタンを押すと、ラベルが0から1に変わるのは1回だけで、何も起こりませんが、ボタンを押すたびに数字が1つ追加され続けます。

4

6 に答える 6

3
def like():
    global numL
    numL+=1
    root_label1.config(text=numL)
    

def dlike():
    global numD
    numD+=1
    root_label2.config(text=numD)
    

と を更新する必要がnumLありnumDます。関数は and の値を更新しないため、値を 0 としてフェッチしnumLますnumD

于 2021-06-25T11:29:04.367 に答える
1

リストを使用して簡単にします。また、len()より多くの機能を使用できます-

from tkinter import *

root = Tk()

numL = []
numD = []

root.geometry("200x100")

def like():
       numL.append(0)
       root_label1.config(text=len(numL))

def dlike():
    numD.append(0)
    root_label2.config(text=len(numD))

root_button1 = Button(root, text="Like", command=like)
root_button2 = Button(root, text="Dislike", command=dlike)

root_label1 = Label(root, text=len(numL))
root_label2 = Label(root, text=len(numD))

root_button1.grid(row=0,column=0)
root_button2.grid(row=0,column=1)

root_label1.grid(row=1,column=0)
root_label2.grid(row=1,column=1)

len(lists)テキストに使用しました。これは私にとってはうまくいきました。そして、それはあなたのために働くはずです

于 2021-06-25T11:28:47.347 に答える