Python 2.7 Tkinter刷新风

2024-04-26 20:21:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编程一个图形用户界面作为一个学校的项目,这将是一个程序,显示游戏分数。我会有两个窗口,一个可以加分,一个可以显示分数。然而,我无法使两者相互作用。请帮帮我! 以下是我的(长)代码:

from tkinter import *
import pickle
##PICKLE##
gd = {"t1" : 0,"t2" : 0}

#######FUNCTIONS######
def t11():
    gd["t1"] += 10

def t12():    
    gd["t1"] += 20

def t13():    
    gd["t1"] += 30

def t14():
    gd["t2"] -= 10

def t21():   
    gd["t2"] += 10

def t22():   
    gd["t2"] += 20

def t23():
    gd["t2"] += 30

def t24():
    gd["t2"] -= 10
####UNVARIABLES####
while 1==1:
   tk = Tk()
   tk.configure(background="#a1dbcd")
   lbl = Label(tk, text="Team1",fg="red",bg="#a1dbcd",font=("Comicsans", 60))
   lbl.grid(row=0, column=0)
   lbl_ = Label(tk, text="                                                 ",bg="#a1dbcd",font=("Helvetica", 40)).grid(row=0,column=1)
   lbl2 = Label(tk, text="Team2",fg="blue",bg="#a1dbcd",font=("Helvetica", 60))
   lbl2.grid(row=0, column=2)
   master = Tk()
   #####VARIABLES#####

lbb1 = Label(tk, textvariable=gd["t1"], fg="orange",bg="#a1dbcd",fon=("jjj",70))
lbb1.grid(row=1, column=0)
lbb2 = Label(tk, textvariable=gd["t2"], fg="orange",bg="#a1dbcd",fon=("jjj",70))
lbb2.grid(row=1, column=2)
##T1##T2#

l= Label(master, text='Team1')
b= Button(master, text='ADD        10 to T1', command=t11)
b2= Button(master, text='ADD        20 to T1', command=t12)
b3= Button(master, text='ADD        30 to T1', command=t13)
b4= Button(master, text='REMOVE 10 to T1',fg="red", command=t14)
ll= Label(master, text='Team2')
bb= Button(master, text='ADD        10 to T2', command=t21)
bb2= Button(master, text='ADD        20 to T2', command=t22)
bb3= Button(master, text='ADD        30 to T2', command=t23)
bb4= Button(master, text='REMOVE 10 to T1',fg="red", command=t24)

b.grid(row=1, column=1)
b2.grid(row=2, column=1)
b3.grid(row=3, column=1)
b4.grid(row=4, column=1)
l.grid(row=0, column=1)
bb.grid(row=1, column=3)
bb2.grid(row=2, column=3)
bb3.grid(row=3, column=3)
bb4.grid(row=4, column=3)
ll.grid(row=0, column=3)

######MAINLOOPS####
tk.mainloop()
master.mainloop()

Tags: totextmasterdefcolumnbuttonlabelcommand
1条回答
网友
1楼 · 发布于 2024-04-26 20:21:25

这是因为第一个窗口的主循环正在阻止另一个窗口运行,直到第一个窗口被销毁。 Tkinter还必须在主线程中运行,因此不能对窗口的主循环执行线程。 我建议只开一个窗口,把分数放在最上面。你知道吗

相关问题 更多 >