赞
踩
Tkinter
实现计算器Tkinter
简介Tkinter
是Python自带的标准 GUI
库,不需要单独安装,TKinter
支持跨平台运行,不仅可以在 Windows
上运行,还支持在 Linux
和 Mac
上运行,可以较为简单的实现工具类图形化界面,较为复杂的界面需要评估 TKinter
是否能够实现。
实现思路
Tkinter
的布局,可以参考 https://docs.zhengxinonly.com/python/03.tkinter/01.intro/02-pack.html
这篇文档,最终选用了 place
这个自由度较高的组件。eval
直接计算输入的表达式。计算器图形化界面的实现
from tkinter import * from tkinter.ttk import * class Calculator(Tk): def __init__(self): # 继承TK组件 super().__init__() self.title("计算器") self.geometry("400x500") # 计算结果展示 self.equation = StringVar() self.create_widgets() def create_widgets(self): """计算器的输入""" # 结果显示 entry = Entry(self, textvariable=self.equation, width=16, font=('Times New Roman', 30, 'bold')) # entry.grid(row=0, column=0, columnspan=4) entry.place(relheight=0.2, relwidth=1, relx=0, rely=0) # 按钮 buttons = [ '7', '8', '9', '/', '4', '5', '6', '*', '1', '2', '3', '-', '0', '.', '=', '+' ] # 按键布局 row, col = 1, 0 for button in buttons: action = lambda x=button: self.on_button_click(x) calculator_button = Button(self, text=button, command=action) # calculator_button.grid(row=row, column=col) # 调整为place布局 calculator_button.place(relheight=0.2, relwidth=0.25, relx=0.25 * col, rely=0.2 * row) col += 1 if col > 3: col = 0 row += 1 if __name__ == "__main__": calculator = Calculator() calculator.mainloop()
计算能力代码实现
# 这里读取输入的内容进行计算
def on_button_click(self, char):
"""结果计算"""
if char == '=':
try:
result = str(eval(self.equation.get()))
self.equation.set(result)
except:
self.equation.set("输入错误")
else:
current_text = self.equation.get()
new_text = current_text + char
self.equation.set(new_text)
完整代码
from tkinter import * from tkinter.ttk import * class Calculator(Tk): def __init__(self): # 继承TK组件 super().__init__() self.title("计算器") self.geometry("400x500") # 计算结果展示 self.equation = StringVar() self.create_widgets() def create_widgets(self): """计算器的输入""" # 结果显示 entry = Entry(self, textvariable=self.equation, width=16, font=('Times New Roman', 30, 'bold')) # entry.grid(row=0, column=0, columnspan=4) entry.place(relheight=0.2, relwidth=1, relx=0, rely=0) # 按钮 buttons = [ '7', '8', '9', '/', '4', '5', '6', '*', '1', '2', '3', '-', '0', '.', '=', '+' ] # 按键布局 row, col = 1, 0 for button in buttons: action = lambda x=button: self.on_button_click(x) calculator_button = Button(self, text=button, command=action) # calculator_button.grid(row=row, column=col) # 调整为place布局 calculator_button.place(relheight=0.2, relwidth=0.25, relx=0.25 * col, rely=0.2 * row) col += 1 if col > 3: col = 0 row += 1 def on_button_click(self, char): """结果计算""" if char == '=': try: result = str(eval(self.equation.get())) self.equation.set(result) except: self.equation.set("输入错误") else: current_text = self.equation.get() new_text = current_text + char self.equation.set(new_text) if __name__ == "__main__": calculator = Calculator() calculator.mainloop()
这里需要用到第三方包 PyInstaller
,PyInstaller
是一个将 Python
脚本转换为独立可执行文件的工具,适用于 Windows
、macOS
和 Linux
,使用如下命令行安装 pyinstaller
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple/
在终端中,cd
到 tkinter
脚本所在的目录,运行如下命令:
pyinstaller --onefile --windowed calculator.py
PyInstaller
会在当前目录下生成一个 dist
文件夹,里面包含打包好的可执行文件。你可以在 dist
文件夹中找到名为 calculator
的可执行文件。
├─Button按钮组件
├─Calculator_计算器
│ ├─build
│ │ └─calculator
│ │ └─localpycs
│ └─dist
打包后,点击即可使用计算器。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。