繁体   English   中英

Python 2.7 Tkinter刷新窗口

[英]Python 2.7 Tkinter refresh window

我正在尝试将GUI编程为学校项目,这将是一个显示游戏分数的程序。 我将有两个窗口,一个在其中添加点,一个在其中显示分数。 但是,我无法使两者互动。 请帮忙 ! 这是我的(长)代码:

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()

这是因为第一个窗口的主循环正在停止另一个窗口的运行,直到第一个窗口被破坏为止。 Tkinter还必须在主线程中运行,因此您无法对窗口的主循环进行线程化。 我建议只使用一个窗口并将分数放在最前面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM