python通过 grid 布局-实现计算器软件界面
时间: 2023-06-29 22:07:46 浏览: 122
使用 Python 中的 tkinter 库可以很容易地实现一个计算器软件界面,并使用 grid 布局进行排列。下面是一个简单的示例代码:
```python
import tkinter as tk
class Calculator:
def __init__(self, master):
self.master = master
master.title("Calculator")
# 创建显示结果的文本框
self.display = tk.Entry(master, width=20, font=('Arial', 16), justify='right')
self.display.grid(row=0, column=0, columnspan=4, padx=5, pady=5)
# 创建数字和操作符按钮
button_list = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+'
]
row_index = 1
col_index = 0
for button_text in button_list:
# 创建按钮并绑定事件处理函数
button = tk.Button(master, text=button_text, width=5, height=2,
font=('Arial', 16), command=lambda text=button_text:self.button_click(text))
# 使用 grid 布局进行排列
button.grid(row=row_index, column=col_index, padx=5, pady=5)
col_index += 1
if col_index > 3:
col_index = 0
row_index += 1
# 处理按钮点击事件
def button_click(self, text):
if text == '=':
result = eval(self.display.get())
self.display.delete(0, tk.END)
self.display.insert(0, str(result))
else:
self.display.insert(tk.END, text)
if __name__ == '__main__':
root = tk.Tk()
app = Calculator(root)
root.mainloop()
```
这个示例代码创建了一个名为 Calculator 的类,用于显示计算器界面和处理按钮点击事件。在 `__init__` 方法中,首先创建了一个文本框用于显示计算结果,并使用 grid 布局将其排列在第一行。接下来,创建了数字和操作符按钮并使用 grid 布局进行排列。
在 `button_click` 方法中,处理按钮点击事件。如果点击的是等于号,则使用 `eval` 函数计算表达式的结果并显示在文本框中;否则直接将按钮上的文本插入到文本框中。
最后,在主函数中创建了一个 Tkinter 窗口,并将 Calculator 类作为其子组件添加到窗口中。调用 `mainloop` 方法进入事件循环,等待用户交互。运行这个程序,就可以看到一个简单的计算器界面了。
阅读全文