You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
4.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

from tkinter import *
from views import ChangeFrame, DeleteFrame, InsertFrame, SearchFrame, HelpFrame
import mysql_internes
import keyboard
# 主页面的实现
class MianPage:
def __init__(self, master):
self.root = master
self.root.title('实习生信息管理系统')
self.root.geometry('570x290')
self.create_page()
# 创建页面通过menu组件创建菜单
def create_page(self):
self.insert_frame = InsertFrame(self.root)
self.search_frame = SearchFrame(self.root)
self.delete_frame = DeleteFrame(self.root)
self.change_frame = ChangeFrame(self.root)
self.help_frame = HelpFrame(self.root)
menubar = Menu(self.root, tearoff=False)
# 对于菜单按钮的一个实现
# 第一个大按钮录入
menubar.add_command(label=' 录 入 ', command=self.show_insert)
# 第二部分查询按钮,实现最复杂的一部分
submenu_search = Menu(menubar)
# 实现降序, 快捷键为ctrl + j
submenu_search.add_command(label = '降 序', command=self.show_search_sort_down,accelerator="Ctrl + J")
# 分割降序和其他部分,降序是是否选,下面的是多选一,默认为选择工号
submenu_search.add_separator()
submenu_search.add_command(label='工 号', command=self.show_search_id, accelerator="Ctrl + D")
submenu_search.add_command(label='性 别', command=self.show_search_sex,accelerator="Ctrl + M")
submenu_search.add_command(label='薪 资', command=self.show_search_wages, accelerator="Ctrl + E")
submenu_search.add_command(label='入职时间', command=self.show_search_hiredata, accelerator="Ctrl + S")
# 实现快捷键
keyboard.add_hotkey('ctrl+j', self.show_search_sort_down) # 降序快捷键ctrl+j
keyboard.add_hotkey('ctrl+d', self.show_search_id) # 工号快捷键ctrl+d
keyboard.add_hotkey('ctrl+m', self.show_search_sex) # 性别快捷键ctrl+m
keyboard.add_hotkey('ctrl+e', self.show_search_wages) # 薪资快捷键ctrl+e
keyboard.add_hotkey('ctrl+s', self.show_search_hiredata) # 入职时间快捷键ctrl+s
#实现剩下的主菜单栏
menubar.add_cascade(label=' 查 询 ', menu = submenu_search)
menubar.add_command(label=' 删 除 ', command=self.show_delete)
menubar.add_command(label=' 修 改 ', command=self.show_change)
menubar.add_command(label=' 帮 助 ', command=self.show_help)
self.root.config(menu = menubar)
def xShowMenu(event):
menubar.post(event.x_root, event.y_root) # #将菜单条绑定上事件坐标为x和y的root位置
self.root.bind("<Button-3>", xShowMenu) # #设定鼠标右键触发事件调用xShowMenu方法
self.show_insert()
# 升或降序排列的值由mysql.interne.sort_interne 的值来决定,每点击一次就异或上一改变其值
def show_search_sort_down(self):
mysql_internes.sort_interne ^= 1
self.show_search()
# 下面都是剩下几种排序的实现
def show_search_id(self):
mysql_internes.sort_data = 0
self.show_search()
def show_search_sex(self):
mysql_internes.sort_data = 1
self.show_search()
def show_search_wages(self):
mysql_internes.sort_data = 2
self.show_search()
def show_search_hiredata(self):
mysql_internes.sort_data = 3
self.show_search()
# 创建某一个页面需要把前面页面留下的东西给pack_forget()来清空一下,然后在实现功能
def show_insert(self):
self.insert_frame.pack()
self.search_frame.pack_forget()
self.delete_frame.pack_forget()
self.change_frame.pack_forget()
self.help_frame.pack_forget()
def show_search(self):
self.insert_frame.pack_forget()
self.delete_frame.pack_forget()
self.change_frame.pack_forget()
self.help_frame.pack_forget()
self.search_frame.pack()
self.search_frame.show_search_data()
def show_delete(self):
self.delete_frame.pack()
self.insert_frame.pack_forget()
self.search_frame.pack_forget()
self.change_frame.pack_forget()
self.help_frame.pack_forget()
def show_change(self):
self.change_frame.pack()
self.insert_frame.pack_forget()
self.search_frame.pack_forget()
self.delete_frame.pack_forget()
self.help_frame.pack_forget()
def show_help(self):
self.change_frame.pack_forget()
self.insert_frame.pack_forget()
self.search_frame.pack_forget()
self.delete_frame.pack_forget()
self.help_frame.pack()