# 这是一个示例 Python 脚本。 # 按 ⌃R 执行或将其替换为您的代码。 # 按 双击 ⇧ 在所有地方搜索类、文件、工具窗口、操作和设置。 import parser import equation_solver import tkinter from tkinter import messagebox from ttkbootstrap import Style from validity_check import IllegalAtomException # 按间距中的绿色按钮以运行脚本。 if __name__ == '__main__': # 新建样式 style = Style('flatly') # 创建窗口 window = style.master window.title('化学方程式自动配平器') window.geometry('500x140') # 创建输入框 input_label = tkinter.Label(window, text='输入方程式:') input_label.place(x=10, y=10) input_entry = tkinter.Entry(window) input_entry.place(x=100, y=10, width=300, height=30) # 创建输出框 output_label = tkinter.Label(window, text='输出方程式:') output_label.place(x=10, y=50) output_entry = tkinter.Entry(window) output_entry.place(x=100, y=50, width=300, height=30) # 创建按钮 button = tkinter.Button(window, text='配平') button.place(x=420, y=10, width=60, height=70) # 创建菜单 menu = tkinter.Menu(window) menu.add_command(label='关于', command=lambda: messagebox.showinfo('关于', '化学方程式自动配平器\n作者:lucas8485\n版本:1.0')) menu.add_command(label='帮助', command=lambda: messagebox.showinfo('帮助', '''输入方程式,点击配平按钮,即可得到配平后的方程式。 注意:方程式中的元素必须是化学元素的符号, 不能是化学元素的全称,且大小写敏感。 如果有分隔符,请不要输入分隔符。''')) window.config(menu=menu) # 事件绑定 def balance(): eq = input_entry.get() try: parsed_eq = parser.parse_equation(eq) output_entry.delete(0, 'end') except IllegalAtomException: # 弹出错误提示 tkinter.messagebox.showerror('错误', '输入的方程式有误!') return except ValueError: # 弹出错误提示 tkinter.messagebox.showerror('错误', '输入的方程式有误!') return try: balanced_eq = equation_solver.solve_equation(parsed_eq) except ValueError: tkinter.messagebox.showerror('错误', '输入的方程式无法配平!') return output_entry.delete(0, tkinter.END) output_entry.insert(0, parser.format_equation(balanced_eq)) button.bind('', lambda event: balance()) # 进入消息循环 window.mainloop() # 访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助