python grid布局制作一个计算器
时间: 2023-07-01 16:12:04 浏览: 93
python-tkinter-calculator
Python 中没有像 HTML 和 CSS 中的 grid 布局,但是我们可以使用第三方库 tkinter 来创建 GUI 应用程序,并使用其中的 grid 布局来实现计算器界面。
以下是一个基于 tkinter 和 grid 布局的简单计算器的 Python 代码:
```python
import tkinter as tk
class Calculator(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.create_widgets()
def create_widgets(self):
self.display = tk.Entry(self.master, width=20, font=('Arial', 16), justify='right')
self.display.grid(row=0, column=0, columnspan=4, padx=5, pady=5)
self.buttons = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+',
'C'
]
row = 1
col = 0
for button in self.buttons:
if button == 'C':
tk.Button(self.master, text=button, width=5, height=2, command=self.clear).grid(row=row, column=col, padx=5, pady=5)
elif button == '=':
tk.Button(self.master, text=button, width=5, height=2, command=self.calculate).grid(row=row, column=col, padx=5, pady=5)
else:
tk.Button(self.master, text=button, width=5, height=2, command=lambda x=button: self.add_to_display(x)).grid(row=row, column=col, padx=5, pady=5)
col += 1
if col > 3:
col = 0
row += 1
def add_to_display(self, value):
current = self.display.get()
if current == '0' and value != '.':
current = ''
self.display.delete(0, tk.END)
self.display.insert(0, current + value)
def clear(self):
self.display.delete(0, tk.END)
self.display.insert(0, '0')
def calculate(self):
expression = self.display.get()
try:
result = eval(expression)
self.display.delete(0, tk.END)
self.display.insert(0, str(result))
except:
self.display.delete(0, tk.END)
self.display.insert(0, 'Error')
root = tk.Tk()
root.title('Calculator')
app = Calculator(root)
app.grid(row=0, column=0)
root.mainloop()
```
在以上代码中,我们创建了一个 Calculator 类来表示整个计算器应用程序,并在其中实现了 create_widgets() 方法来创建计算器界面,add_to_display() 方法来将按键的值添加到计算器显示屏上,clear() 方法来清除显示屏上的内容,以及 calculate() 方法来计算并显示结果。
我们在 create_widgets() 方法中使用了 grid 布局来将各个按键放置在计算器界面上,并使用 command 参数将每个按键与相应的方法绑定。
最后,我们创建了一个 Tkinter 窗口并将 Calculator 类的实例添加到窗口中,启动了 GUI 应用程序。
运行以上代码,就可以得到一个基于 tkinter 和 grid 布局的简单计算器。
阅读全文