2016-03-14 36 views
0

我有一個簡單的GUI程序,使用Tinter和Turtle,其目標是繪製一個多邊形。我向用戶詢問邊的數量和邊長。我做了一個簡單的GUI,但是當我點擊按鈕來獲取值時,我得到了非常小的十進制數字值,我找不到原因。Tkinter .get()從入口給出奇怪值

import Tkinter as tk 

def draw_polygon(): 
    num_of_sides.get() 
    length_of_sides.get() 

    print num_of_sides, length_of_sides 

root = tk.Tk() 

tk.Label(root, text='Number of Sides').grid(row=0) 
tk.Label(root, text='Length of Sides').grid(row=1) 

num_of_sides = tk.Entry(root) 
num_of_sides.grid(row=0, column=1) 

length_of_sides = tk.Entry(root) 
length_of_sides.grid(row=1, column=1) 

draw_button = tk.Button(root, text='Draw', command=draw_polygon) 
draw_button.grid(row=3, column=1) 

tk.mainloop() 

回答

1

您必須將返回值get()賦值給一個變量。否則,您將打印小部件的名稱,默認情況下是一個點,後跟一個數字。

import Tkinter as tk 

root = tk.Tk() 

tk.Label(root, text='Number of Sides').grid(row=0) 
tk.Label(root, text='Length of Sides').grid(row=1) 

num_of_sides = tk.Entry(root, name = "numOfSides") 
num_of_sides.grid(row=0, column=1) 

length_of_sides = tk.Entry(root, name = "lenOfSides") 
length_of_sides.grid(row=1, column=1) 

def draw_polygon(): 
    ns = num_of_sides.get() 
    ls = length_of_sides.get() 

    print ns, ls     
    print num_of_sides, length_of_sides 

draw_button = tk.Button(root, text='Draw', command=draw_polygon) 
draw_button.grid(row=3, column=1) 

tk.mainloop() 

當然,你可以發表評論或刪除第二print,我把它的解釋。您也可以刪除兩個name=參數。