Preview_find.Py
# -*- coding: utf-8-*-
import Tkinter
import ScrolledText
import tkFont
import os
import string
import pickle
import tkFileDialog
import Image
import ImageTk
class preview_find:
def __init__(self, root,all_font,res_data,number_of_path):
self(root,all_font,res_data,number_of_path)
def __call__(self,root,all_font,res_data,number_of_path):
self.number_of_path = number_of_path
def otmena(event = None):
self.FRC.destroy()
root.title(u"Просмотр результатов поиска")
self.dosm = ["Spec","Grup","Mark","God_1","Name_S","SName_S","LName_S","Name_P","SName_P","LName_P","page","plac","pict","tabl"]
#Parametry = ["Специальность","Группа","Оценка","Год защити","�мя","Фамилия","Отчество","�мя2","Фамилия2","Отчество2","Тема дипломного проэкта","Количество страниц","Количество плакатов","Количество рисунков","Количество таблиц"]
self.Param_2 = {"Spec":u"","Grup":u"","Mark":"","God_1":"","Name_S":"","SName_S":"","LName_S":"","Name_P":"","SName_P":"","LName_P":"","page":"","plac":"","pict":"","tabl":""}
self.FRC = Tkinter.Frame(root)
self.FRC["width"] = 1024
self.FRC["height"] = 768
self.FRC.place(relx = 0, rely = 0, anchor = "nw" )
self.stud_inf = res_data[number_of_path]
LaFR1 = Tkinter.LabelFrame(self.FRC)
LaFR1["text"] = u"Специальность"
LaFR1["font"] = all_font
LaFR1.place(relx = 0.02, rely = 0.03, anchor = "w")
self.Ent1 = Tkinter.Entry(LaFR1)
self.Ent1["width"] = 40
self.Ent1.insert( "end" ,self.stud_inf.get("Spec"))
self.Ent1 ["state"] = "disabled"
self.Ent1.pack()
LaFR2 = Tkinter.LabelFrame(self.FRC)
LaFR2["text"] = u"Группа"
LaFR2["font"] = all_font
LaFR2.place(relx = 0.34, rely = 0.03, anchor = "w")
self.Ent2 = Tkinter.Entry(LaFR2)
self.Ent2["width"] = 10
self.Ent2.insert("end" ,self.stud_inf.get("Grup"))
self.Ent2 ["state"] = "disabled"
self.Ent2.pack()
LaFR3= Tkinter.LabelFrame(self.FRC)
LaFR3["text"] = u"Оценка"
LaFR3["font"] = all_font
LaFR3.place(relx = 0.42, rely = 0.03, anchor = "w")
self.Ent3 = Tkinter.Entry(LaFR3)
self.Ent3.insert("end" ,self.stud_inf.get("Mark"))
self.Ent3["width"] = 10
self.Ent3 ["state"] = "disabled"
self.Ent3.pack()
LaFR4 = Tkinter.LabelFrame(self.FRC)
LaFR4["text"] = u"Год защити"
LaFR4["font"] = all_font
LaFR4.place(relx = 0.5, rely = 0.03, anchor = "w")
self.Ent4 = Tkinter.Entry(LaFR4)
self.Ent4["width"] = 10
self.Ent4.insert("end" ,self.stud_inf.get("God_1"))
self.Ent4 ["state"] = "disabled"
self.Ent4.pack()
LaFR5= Tkinter.LabelFrame(self.FRC)
LaFR5["text"] = u"Степень"
LaFR5["font"] = all_font
LaFR5.place(relx = 0.66, rely = 0.03, anchor = "w")
self.Ent123 = Tkinter.Entry(LaFR5)
self.Ent123["width"] =17
self.Ent123.insert("end" ,self.stud_inf.get("Stepen"))
self.Ent123 ["state"] = "disabled"
self.Ent123.pack()
LaFR_Date_1 = Tkinter.LabelFrame(self.FRC)
LaFR_Date_1["text"] = u"Данные о студенте"
LaFR_Date_1["font"] = all_font
LaFR_Date_1.place(relx = 0.01, rely = 0.12, anchor = "w")
LaFR_Date_1["width"] = 924
LaFR_Date_1["height"] = 85
LaFR6 = Tkinter.LabelFrame(LaFR_Date_1)
LaFR6["text"] = u"Имя"
LaFR6["font"] = all_font
LaFR6.place(relx = 0.01, rely = 0.5 , anchor = "w")
self.Ent6 = Tkinter.Entry(LaFR6)
self.Ent6["width"] = 40
self.Ent6.insert("end" ,self.stud_inf.get("Name_S"))
self.Ent6 ["state"] = "disabled"
self.Ent6.pack()
LaFR7 = Tkinter.LabelFrame(LaFR_Date_1)
LaFR7["text"] = u"Фамилия"
LaFR7["font"] = all_font
LaFR7.place(relx = 0.5, rely = 0.5 , anchor = "center")
self.Ent7 = Tkinter.Entry(LaFR7)
self.Ent7["width"] = 40
self.Ent7.insert("end" ,self.stud_inf.get("SName_S"))
self.Ent7 ["state"] = "disabled"
self.Ent7.pack()
LaFR8 = Tkinter.LabelFrame(LaFR_Date_1)
LaFR8["text"] = u"Отчество"
LaFR8["font"] = all_font
LaFR8.place(relx = 0.99, rely = 0.5 , anchor = "e")
self.Ent8 = Tkinter.Entry(LaFR8)
self.Ent8["width"] = 40
self.Ent8.insert("end" ,self.stud_inf.get("LName_S"))
self.Ent8 ["state"] = "disabled"
self.Ent8.pack()
LaFR_Date_2 = Tkinter.LabelFrame(self.FRC)
LaFR_Date_2["text"] = u"Данные о научном руководителе"
LaFR_Date_2["font"] = all_font
LaFR_Date_2.place(relx = 0.01, rely = 0.25, anchor = "w")
LaFR_Date_2["width"] = 924
LaFR_Date_2["height"] = 85
LaFR9 = Tkinter.LabelFrame(LaFR_Date_2)
LaFR9["text"] = u"Имя"
LaFR9["font"] = all_font
LaFR9.place(relx = 0.01, rely = 0.5 , anchor = "w")
self.Ent9 = Tkinter.Entry(LaFR9)
self.Ent9["width"] = 40
self.Ent9.insert("end" ,self.stud_inf.get("Name_P"))
self.Ent9 ["state"] = "disabled"
self.Ent9.pack()
LaFR10 = Tkinter.LabelFrame(LaFR_Date_2)
LaFR10["text"] = u"Фамилия"
LaFR10["font"] = all_font
LaFR10.place(relx = 0.5, rely = 0.5 , anchor = "center")
self.Ent10 = Tkinter.Entry(LaFR10)
self.Ent10["width"] = 40
self.Ent10.insert("end" ,self.stud_inf.get("SName_P"))
self.Ent10 ["state"] = "disabled"
self.Ent10.pack()
LaFR11 = Tkinter.LabelFrame(LaFR_Date_2)
LaFR11["text"] = u"Отчество"
LaFR11["font"] = all_font
LaFR11.place(relx = 0.99, rely = 0.5 , anchor = "e")
self.Ent11 = Tkinter.Entry(LaFR11)
self.Ent11["width"] = 40
self.Ent11.insert("end" ,self.stud_inf.get("LName_P"))
self.Ent11 ["state"] = "disabled"
self.Ent11.pack()
LaFR_Date_3 = Tkinter.LabelFrame(self.FRC)
LaFR_Date_3["text"] = u"Тема дипломного проэкта"
LaFR_Date_3["font"] = all_font
LaFR_Date_3.place(relx = 0.01, rely = 0.32, anchor = "nw")
self.ST =ScrolledText.ScrolledText(LaFR_Date_3,background="white")
self.ST.insert("end" ,self.stud_inf.get("Theme"))
self.ST["width"] = 150
self.ST["height"] =7
self.ST["state"] = "disabled"
self.ST.pack()
LaFR_Date_4 = Tkinter.LabelFrame(self.FRC)
LaFR_Date_4["text"] = u"Данные о дипломном проэкте"
LaFR_Date_4["font"] = all_font
LaFR_Date_4.place(relx = 0.01, rely = 0.55, anchor = "w")
LaFR_Date_4["width"] = 924
LaFR_Date_4["height"] = 90
LaFR12 = Tkinter.LabelFrame(LaFR_Date_4)
LaFR12["text"] = u"Количество страниц"
LaFR12["font"] = all_font
LaFR12.place(relx = 0.01, rely = 0.5 , anchor = "w")
self.Ent12 = Tkinter.Entry(LaFR12)
self.Ent12["width"] = 32
self.Ent12.insert("end" ,self.stud_inf.get("page"))
self.Ent12 ["state"] = "disabled"
self.Ent12.pack()
LaFR13 = Tkinter.LabelFrame(LaFR_Date_4)
LaFR13["text"] = u"Количество плакатов"
LaFR13["font"] = all_font
LaFR13.place(relx = 0.38, rely = 0.5 , anchor = "center")
self.Ent13 = Tkinter.Entry(LaFR13)
self.Ent13["width"] = 32
self.Ent13.insert("end" ,self.stud_inf.get("plac"))
self.Ent13 ["state"] = "disabled"
self.Ent13.pack()
LaFR14 = Tkinter.LabelFrame(LaFR_Date_4)
LaFR14["text"] = u"Количество рисунков"
LaFR14["font"] = all_font
LaFR14.place(relx = 0.52, rely = 0.5 , anchor = "w")
self.Ent14 = Tkinter.Entry(LaFR14)
self.Ent14["width"] = 32
self.Ent14.insert("end" ,self.stud_inf.get("pict"))
self.Ent14 ["state"] = "disabled"
self.Ent14.pack()
LaFR15 = Tkinter.LabelFrame(LaFR_Date_4)
LaFR15["text"] = u"Количество таблиц"
LaFR15["font"] = all_font
LaFR15.place(relx = 0.99, rely = 0.5 , anchor = "e")
self.Ent15 = Tkinter.Entry(LaFR15)
self.Ent15["width"] = 32
self.Ent15.insert("end" ,self.stud_inf.get("tabl"))
#print self.stud_inf.get("tabl")
self.Ent15 ["state"] = "disabled"
self.Ent15.pack()
def number_1 (event = None):
p_n("1")
def number_2 (event = None):
p_n("-1")
def p_n (event = None):
#print self.number_of_path
#print string.atoi(event)
self.number_of_path = self.number_of_path + string.atoi(event)
print self.number_of_path
if self.number_of_path < 0:
self.number_of_path = 0
else:
try:
m = res_data[self.number_of_path]
except:
self.number_of_path = self.number_of_path - 1
inform(self.number_of_path)
#Создание кнопок
But1 = Tkinter.Button(self.FRC)
But1["bg"] = "white"
But1["bd"] = "1m"
But1 ["font"] = all_font
But1["relief"] = "raised"
But1.place(relx = 0.5, rely = 0.85, anchor = "center")
But1["text"] = u"Завершить просмотр"
But1.bind("<Button-1>",otmena)
def __delattr__ (self, a):
self.FRC.destroy()
#print u"ok))))))))))))))))))"
if __name__ == "__main__":
root = Tkinter.Tk()
root.geometry("1024x768+0+0")
all_font = tkFont.Font()
all_font ["family"] = "Helvetica"
all_font ["size"] = 14
all_font ["weight"] = "normal"
number_of_path = 2
res_data = [{'Spec': 'AAG', 'Name_S': 'B', 'Name_P': 'B', 'pict': '3', 'God_1': '1993', 'tabl': '4', 'Mark': '5', 'SName_P': 'B', 'Theme': 'B\n', 'SName_S': 'B', 'Grup': 'TM-71B', 'LName_P': 'B', 'plac': '2', 'LName_S': 'B', 'Stepen': u'\u041c\u0430\u0433\u0438\u0441\u0442\u0440', 'page': '1'}, {'Spec': 'AAG', 'Name_S': 'D', 'Name_P': 'D', 'pict': '3', 'God_1': '1993', 'tabl': '5', 'Mark': '5', 'SName_P': 'D', 'Theme': 'D\n', 'SName_S': 'D', 'Grup': 'TM-71B', 'LName_P': 'D', 'plac': '2', 'LName_S': 'D', 'Stepen': u'\u041c\u0430\u0433\u0438\u0441\u0442\u0440', 'page': '1'}, {'Spec': 'AAG', 'Name_S': 'Q', 'Name_P': 'Q', 'pict': '3', 'God_1': '1993', 'tabl': '4', 'Mark': '4', 'SName_P': 'Q', 'Theme': 'Q\n', 'SName_S': 'Q', 'Grup': 'TM-71B', 'LName_P': 'Q', 'plac': '2', 'LName_S': 'Q', 'Stepen': u'\u041c\u0430\u0433\u0438\u0441\u0442\u0440', 'page': '1'}]
preview_find(root,all_font,res_data,number_of_path)
root.mainloop()
Направления улучшения.
- в программу можно добавить функцию распознавания орфографических ошибок. Что существенно поможет при составлении и поиске дипломных проектов.
- можно добавить «справку», что поможет пользователю детальней узнать о программе и помочь ему в работе с ней.
- так же, можно сделать «резервное копирование», что поможет сохранить текущие введённые данные в отдельную папку.
Вывод
Мы сделали программу для создания и хранения базы данных о дипломных проектах. Хранится БД в папке TM_Base и далее в 3х папках бакалавр, магистр или специалист.
Эта программа может быть полезной и актуальной, так как похожих программ нету, а без этой программы работать с дипломными проектами довольно трудно.
Список использованной литературы:
-
Россум Г. Язык программирования python
-
Б.А. Курс по библиотеке Tkinter языка python
-
Б.А. Язык программирования python Ч1-Ч3
-
Шипман Д.Д. Tkinter 8.4. GUI for python
