【问题标题】:Python 2.7 Tkinter refresh windowPython 2.7 Tkinter 刷新窗口
【发布时间】:2016-04-10 07:18:56
【问题描述】:

我正在尝试将 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()

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    这是因为第一个窗口的主循环正在阻止另一个窗口运行,直到第一个窗口被销毁。 Tkinter 还必须在主线程中运行,因此您不能线程化窗口的主循环。 我建议只设置一个窗口并将分数放在首位。

    【讨论】:

    • 谢谢,但是有没有办法拥有 2 个窗口? (不过我会试试你的技术=D)
    猜你喜欢
    • 2020-04-14
    • 2020-05-29
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 2014-01-27
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多