Tkinter窗口格式(Python)

2024-06-24 13:37:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个简单的Tkinter计算器,但我似乎不能正确地排列输入表单和按钮。在

这是我当前的代码

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

我想把它排成一行,这样加号和减号按钮都在输入表单下面,如果有人能帮忙的话,那就太好了谢谢你了


Tags: textconfiggetdefcolumnrootresultfloat
1条回答
网友
1楼 · 发布于 2024-06-24 13:37:51

您可以使用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乘2的网格。在

相关问题 更多 >