2016-04-10 141 views
0

我想將GUI編程爲學校項目,它將顯示遊戲成績的程序。我會有兩個窗口,一個用來添加點數,一個用來顯示分數。但是,我無法讓這兩者互動。請幫忙 ! 這是我(長)代碼:Python 2.7 Tkinter刷新窗口

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

回答

0

這是因爲第一個窗口的主循環是從運行,直到第一個窗口已被破壞停止其他窗口。 Tkinter也必須在主線程中運行,所以你不能線程化窗口的主循環。 我會建議只有一個窗口,並把分數放在上面。

+0

謝謝,但有沒有辦法有2個窗口? (儘管我會嘗試你的技術= D) – Noe