python:Tkinter版學生管理
阿新 • • 發佈:2018-12-18
Tkinter是python自帶的UI包,無需下載,只需要匯入
tkinter 文件http://effbot.org/tkinterbook/ //http://effbot.org/tkinterbook//// 文件是英文版本的,可以翻譯!
介面效果如下: python的pc端介面還是可以的,較為美觀!
頁面較為粗狂,為經過專業設計!
系統的物件封裝,資料連線使用的是原本控制檯版本的!
#匯入tkinter 包
from tkinter import *
from tkinter import ttk
from com.hc.dao.Connect import *
from com.hc.entity.Student import *
root=Tk()
# 視窗寬高 英文X
root.geometry('600x500')
# 固定視窗
root.resizable(width=False,height=False)
# 視窗標題
root.title('hc king')
# 標籤 \ n
Label(root,text='資訊管理',bg='white',fg='red',font=('宋體',15)).pack(side=TOP,fill='x')
# 資料表格
#居中
dataTreeview=ttk.Treeview(root,show='headings',column=('sid','sname','sex' ,'sage'))
dataTreeview.column('sid',width=150,anchor="center")
dataTreeview.column('sname',width=150,anchor="center")
dataTreeview.column('sex',width=150,anchor="center")
dataTreeview.column('sage',width=150,anchor="center")
dataTreeview.heading('sid',text='編號')
dataTreeview.heading('sname',text='名稱')
dataTreeview.heading('sex',text='性別')
dataTreeview.heading('sage',text='年齡')
bottomFrame=Frame(root)
sidLabel=Label(leftFrame,text='編號:')
snameLabel=Label(leftFrame,text='名稱:')
sexLabel=Label(leftFrame,text='性別:')
sageLabel=Label(leftFrame,text='年齡:')
sidEntry=Entry(leftFrame)
snameEntry=Entry(leftFrame)
sexEntry=Entry(leftFrame)
sageEntry=Entry(leftFrame)
sidLabel.grid(row=0,column=0)
sidEntry.grid(row=0,column=1)
snameLabel.grid(row=0,column=2)
snameEntry.grid(row=0,column=3)
sexLabel.grid(row=1,column=0)
sexEntry.grid(row=1,column=1)
sageLabel.grid(row=1,column=2)
sageEntry.grid(row=1,column=3)
insButton=Button(rightFrame,text="新增",command=insert)
insButton.grid(row=0,column=0)
delButton=Button(rightFrame,text="刪除",command=delete)
delButton.grid(row=0,column=1)
updButton=Button(rightFrame,text="修改",command=update)
updButton.grid(row=1,column=0)
selButton=Button(rightFrame,text="查詢",command=select)
selButton.grid(row=1,column=1)#定位式佈局,即座標
dataTreeview.bind('<<TreeviewSelect>>',treeSel)#為dataTreeview繫結事件
bottomFrame.pack()#元件顯示
root.mainloop()#介面執行
上述是系統的介面。
#點選dataTreeview的某一項,就把資料拿到,放進四個輸入框內
def treeSel(event):
item=dataTreeview.selection()
itemvalues=dataTreeview.item(item,'values')
clearEntry()
sidEntry.insert(0,itemvalues[0])
snameEntry.insert(0, itemvalues[1])
sexEntry.insert(0, itemvalues[2])
sageEntry.insert(0, itemvalues[3])
#把四個輸入框的資料放進物件
def update():
student = Student()
student.stuId = sidEntry.get()
student.stuName = snameEntry.get()
student.stuSex = sexEntry.get()
student.stuAge = sageEntry.get()
DataBase().updUser(student)
clearAndall()
#刪除dataTreeview裡面的資料
def clear():
clearEntry()
for item in dataTreeview.get_children():
dataTreeview.delete(item)
def addAll():
for o in DataBase().allUser():
dataTreeview.insert('',0, values=(o[0], o[1], o[2], o[3]))
#清空四個輸入框
def clearEntry():
sidEntry.delete(0, END)
snameEntry.delete(0, END)
sexEntry.delete(0, END)
sageEntry.delete(0, END)
上述是系統所需的具體方法! 仍然需要改進!