# main.py import tkinter as tk from student.dal.csv_student_dal import CsvStudentDAL from student.dal.json_student_dal import JsonStudentDAL from student.dal.sqlite_student_dal import SQLiteStudentDAL from student.bll.student_bll import StudentBLL from student.ui.gui_ui import StudentGUI # 修改导入 import sys from pprint import pprint pprint(sys.path) # 打印模块搜索路径 def main(): # 创建主窗口 root = tk.Tk() # 选择数据存储方式 storage_choice = tk.StringVar(value="3") # 创建选择对话框 dialog = tk.Toplevel(root) dialog.title("选择数据存储方式") dialog.geometry("300x200") dialog.transient(root) dialog.grab_set() tk.Label(dialog, text="请选择数据存储方式:").pack(pady=10) tk.Radiobutton(dialog, text="CSV文件", variable=storage_choice, value="1").pack(anchor=tk.W, padx=20) tk.Radiobutton(dialog, text="JSON文件", variable=storage_choice, value="2").pack(anchor=tk.W, padx=20) tk.Radiobutton(dialog, text="SQLite数据库", variable=storage_choice, value="3").pack(anchor=tk.W, padx=20) def on_ok(): dialog.destroy() tk.Button(dialog, text="确定", command=on_ok).pack(pady=20) # 等待对话框关闭 root.wait_window(dialog) # 根据选择初始化数据访问层 if storage_choice.get() == '1': dal = CsvStudentDAL() elif storage_choice.get() == '2': dal = JsonStudentDAL() else: dal = SQLiteStudentDAL() # 初始化业务逻辑层和用户界面 bll = StudentBLL(dal) app = StudentGUI(root, bll) # 运行主循环 root.mainloop() if __name__ == "__main__": main()