2013-04-22 181 views
4

即時製作一個簡單的Tkinter計算器,但我似乎無法正確排列輸入形式和按鈕。Tkinter窗口格式化(Python)

這裏是我當前的代碼

from Tkinter import * 

def calculate(): 
    try: 
     num1 = float(enter1.get()) 
     num2 = float(enter2.get()) 
     result = num1 * num2 
     label3.config(text=str(result)) 
    except ValueError: 
     label3.config(text='Enter numeric values!') 
def calculate2(): 
    try: 
     num1 = float(enter1.get()) 
     num2 = float(enter2.get()) 
     result = num1/num2 
     label3.config(text=str(result)) 
    except ValueError: 
     label3.config(text='Enter numeric values!') 
def calculate3(): 
    try: 
     num1 = float(enter1.get()) 
     num2 = float(enter2.get()) 
     result = num1 + num2 
     label3.config(text=str(result)) 
    except ValueError: 
     label3.config(text='Enter numeric values!') 
def calculate4(): 
    try: 
     num1 = float(enter1.get()) 
     num2 = float(enter2.get()) 
     result = num1 - num2 
     label3.config(text=str(result)) 
    except ValueError: 
     label3.config(text='Enter numeric values!') 

root = Tk() 



label1 = Label(root, text='First Number:') 
label1.grid(row=0, column=1) 
enter1 = Entry(root, bg='white') 
enter1.grid(row=1, column=1) 


label2 = Label(root, text='Second Number:') 
label2.grid(row=2, column=1) 
enter2 = Entry(root, bg='white') 
enter2.grid(row=3, column=1) 


btn1 = Button(root, text='X', command=calculate) 
btn1.grid(row=4, column=1) 
btn2 = Button(root, text='/', command=calculate2) 
btn2.grid(row=5, column=1) 
btn3 = Button(root, text='+', command=calculate3) 
btn3.grid(row=5, column=2) 
btn4 = Button(root, text='-', command=calculate4) 
btn4.grid(row=4, column=2) 

label3 = Label(root) 
label3.grid(row=6, column=1) 


enter1.focus() 

enter1.bind('<Return>', func=lambda e:enter2.focus_set()) 

root.mainloop() 

What the Widget looks like now

我想行這一切,並使它所以加號和減號按鈕下的輸入形式,如果有人能夠幫助這將是非常感謝你

回答

5

你可以使用columnspan參數跨越標籤和條目兩列。作爲邊注,請記住,列索引也從零開始:

label1.grid(row=0, column=0, columnspan=2) 
enter1.grid(row=1, column=0, columnspan=2) 
label2.grid(row=2, column=0, columnspan=2) 
enter2.grid(row=3, column=0, columnspan=2) 

btn1.grid(row=4, column=0) 
btn2.grid(row=5, column=0) 
btn3.grid(row=5, column=1) 
btn4.grid(row=4, column=1) 

label3.grid(row=6, column=0, columnspan=2) 

另一種解決方案是通過2

+0

以創建新幀,並把其內部的按鈕,形成爲2的簡單的網格非常感謝你!! – Serial 2013-04-22 01:19:38

+0

@ChristianCareaga不客氣;) – 2013-04-22 01:26:08