2016-05-10 6 views
-1

以下、走っている人の周回を追跡するコードを作成しました。現時点では、私が作成したボタンはラップと時間を追跡しますが、GUIウィンドウには表示されません。私はどのようにGUIウィンドウ上のコードショーからのデータを作成するのだろうかと思っていた。ボタンを特定のテキストを印刷するにはどうすればいいですか? - Tkinter

from Tkinter import * 
import time 

laps=[0] 
gui=Tk() 
gui.geometry("200x100") 
gui.title("lapping") 

def afterbutton(): 
    label_1=Label(gui,text=end()) 

def end(): 
    end = time.time() 
    elapsed = end - start 
    laps[0]+=1 
    print "%s seconds" % (elapsed) 
    print "%s lap(s)" % (laps) 

starting = raw_input("start? (s to start)") 

if starting == "s": 
    start = time.time() 

button1=Button(gui,command=afterbutton,text="lap") 
button1.grid() 
button1.pack() 

gui.mainloop() 

答えて

0

ボタンを作成すると同時にラベルを作成する必要があります。あなたはボタンのようにグリッドに配置してパックする必要があります。次に、ボタンをクリックすると、ラベルのテキストが変更されます。これは、次のようになります。

# python 3 
from Tkinter import * 
import time 

laps=[0] 
gui=Tk() 
gui.geometry("200x100") 
gui.title("lapping") 

def end(): 
    end = time.time() 
    elapsed = end - start 
    laps[0] += 1 
    s = "%s seconds %s laps" % (elapsed,laps) 
    label1['text'] = s 
    print("%s seconds" % (elapsed)) 
    print("%s lap(s)" % (laps)) 

starting = raw_input("start? (s to start)") 

if starting == "s": 
    start = time.time() 

button1 = Button(gui, command=end, text="lap") 
button1.grid() 
button1.pack() 
label1 = Label(gui) 
label1.grid() 
label1.pack() 

gui.mainloop() 

関数afterbuttonがなくなりました。すべての作業はend()によって行われます。私はあなたのプログラムのほとんどを保存しましたが、py3を使用していますので、printはステートメントではなく関数です。あなたはpy2のために修正する必要があります。ラベルのテキストは、次のように設定されます。

label1['text'] = s 

これは最初に表示されたときには幾分奇妙な構文です。

ところで、単純な変数の代わりに1要素のリストをラップに使用した理由はわかりません。

関連する問題