New_Data.Py
# -*- coding: cp1251 -*-
import Tkinter
import ScrolledText
import tkFont
import os
import string
import pickle
import tkFileDialog
import Image
import ImageTk
#окно "С" - создание новой записи
class new_data:
def __init__(self, root,all_font):
self(root,all_font)
def __call__(self, root,all_font):
def New_dictonary(event = None):
Base = {}
ss = 0
for i in range(0,13):
self.Param_2[self.dosm[i]] = self.informatino[ss]
ss = ss + 1
print type(self.informatino[ss])
self.Param_2["Theme"] = self.ST.get(index1 = 0.0,index2 = "end")
self.Param_2["Stepen"] = self.stepen
self.Param_2["tabl"] = Ent15.get()
#print self.ST.get(index1 = 0.0,index2 = "end")
#*******************************************************************************
#ПРОВЕРКА ПУТЕЙ:
if os.path.exists("C:\\TM_Base") == 1:
os.chdir("C:\\TM_Base")
else:
os.makedirs("C:\\TM_Base")
os.chdir("C:\\TM_Base")
Sohranenie()
def Sohranenie (event= None):
def Sohranenie_pict(event = None): #сохранение картинок
os.chdir(self.path_pict)
print os.listdir(self.path_pict)
t = os.listdir(self.path_pict)
u = ["C:\\TM_Base\\Spec\\" + self.key_key + "\\",'C:\\TM_Base\\Bakalavr\\' + self.key_key + '\\','C:\\TM_Base\\Magistr\\' + self.key_key + '\\']
d = u[event]
for i in t:
os.chdir(self.path_pict)
open_pict = open(i,"rb")
p = open_pict.read()
open_pict.close()
os.chdir(u[event])
stud_pict = open(i ,"wb")
stud_pict.write(p)
stud_pict.close()
def Sohranenie_text (event = None):
u = ["C:\\TM_Base\\Spec\\" + self.key_key + "\\",'C:\\TM_Base\\Bakalavr\\' + self.key_key + '\\','C:\\TM_Base\\Magistr\\' + self.key_key + '\\']
z = string.split(self.path_pdf,"/")
try:
for i in z:
if i.find(".docx") != -1:
self.pdf = i
print self.pdf
elif i.find(".pdf") != -1:
self.pdf = i
print self.pdf
elif i.find(".txt") != -1:
self.pdf = i
print self.pdf
elif i.find(".doc") != -1:
self.pdf = i
print self.pdf
else:
pass
h = len (self.path_pdf)
j = len (self.pdf)
l = h - j
N = self.path_pdf[0:l]
print N
os.chdir(N)
open_pdf = open(self.pdf,"rb")
f = open_pdf.read()
open_pdf.close()
os.chdir(u[event])
stud_pdf = open(self.pdf,"wb")
stud_pdf.write(f)
stud_pdf.close()
except:
krasavchik_font = tkFont.Font()
krasavchik_font ["family"] = "Helvetica"
krasavchik_font ["size"] = 30
krasavchik_font ["weight"] = "bold"
krasavchik_font ["slant"] = "italic"
krasavchik = Tkinter.Label(self.FRC)
krasavchik["text"] = u"Не верный тип данных!\n Текстовый файл не сохранен!!!"
krasavchik["font"] = krasavchik_font
krasavchik["bg"] = "red"
krasavchik.place(relx = 0.5,rely = 0.6 , anchor = "center")
def create_folders (event = None):
#ПРОВЕРКА ПУТЕЙ К ПАПКЕ СПЕЦИАЛИСТ:
u = ["C:\\TM_Base\\Spec\\",'C:\\TM_Base\\Bakalavr\\','C:\\TM_Base\\Magistr\\']
if os.path.exists(u[event]) == 1:
os.chdir(u[event])
else:
os.makedirs(u[event])
os.chdir(u[event])
key_1 = self.Param_2.get("Name_S")
key_2 = self.Param_2.get("SName_S")
key_3 = self.Param_2.get("LName_S")
self.key_key = key_2 +"_" + key_1 +"_" + key_3
if os.path.exists(u[event] + self.key_key + "\\") == 1:
os.chdir(u[event] + self.key_key + "\\")
self.stud_file = open ("Base_stud.bso", "rb") #ОТКРЫВАЕМ ФАЙЛ С ИНФ О СТУДЕНТЕ
else:
os.makedirs(u[event] + self.key_key)
os.chdir(u[event] + self.key_key)
self.stud_file = open ("Base_stud.bso", "wb") #ОТКРЫВАЕМ ФАЙЛ С ИНФ О СТУДЕНТЕ
try:
pickle.dump(self.Param_2,self.stud_file)
except:
self.stud_file.close()
self.stud_file = open ("Base_stud.bso", "wb")
pickle.dump(self.Param_2,self.stud_file)
self.stud_file.close()
Sohranenie_text(event)
Sohranenie_pict(event)
if self.stepen == u"Специалист":
create_folders(0)
elif self.stepen == u"Бакалавр":
create_folders(1)
else:
create_folders(2)
#***********************************************************************************************************************
def otmena(event = None):
self.FRC.destroy()
root.title(u"Cоздание новой записи")
#root.geometry("1024x768+0+0")
def Seve_inform(event = None):
entry_get=[]
for i in Inform:
if i.get() == '':
i["bg"] = "red"
else:
i["bg"] = "white"
entry_get.append(i.get())
self.informatino = entry_get
if len(entry_get) == 14:
New_dictonary()
krasavchik_font = tkFont.Font()
krasavchik_font ["family"] = "Helvetica"
krasavchik_font ["size"] = 30
krasavchik_font ["weight"] = "bold"
krasavchik_font ["slant"] = "italic"
krasavchik = Tkinter.Label(self.FRC)
krasavchik["text"] = u"Новая запись успешно добавлена"
krasavchik["font"] = krasavchik_font
krasavchik["bg"] = "yellow"
krasavchik.place(relx = 0.5,rely = 0.5 , anchor = "center")
else:
pass
#Новая рамка для окна "С"
self.FRC = Tkinter.Frame(root)
self.FRC["width"] = 1024
self.FRC["height"] = 768
self.FRC.place(relx = 0, rely = 0, anchor = "nw" )
Inform = []
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":u"попал ты чувак"}
#Создание полей ввода, первая строка
LaFR1 = Tkinter.LabelFrame(self.FRC)
LaFR1["text"] = u"Специальность"
LaFR1["font"] = all_font
LaFR1.place(relx = 0.02, rely = 0.03, anchor = "w")
Ent1 = Tkinter.Entry(LaFR1)
Ent1["width"] = 40
Inform.append(Ent1)
Ent1.pack()
LaFR2 = Tkinter.LabelFrame(self.FRC)
LaFR2["text"] = u"Группа"
LaFR2["font"] = all_font
LaFR2.place(relx = 0.34, rely = 0.03, anchor = "w")
Ent2 = Tkinter.Entry(LaFR2)
Ent2["width"] = 10
Inform.append(Ent2)
Ent2.pack()
LaFR3= Tkinter.LabelFrame(self.FRC)
LaFR3["text"] = u"Оценка"
LaFR3["font"] = all_font
LaFR3.place(relx = 0.42, rely = 0.03, anchor = "w")
Ent3 = Tkinter.Entry(LaFR3)
Ent3["width"] = 10
Inform.append(Ent3)
Ent3.pack()
LaFR4 = Tkinter.LabelFrame(self.FRC)
LaFR4["text"] = u"Год защити"
LaFR4["font"] = all_font
LaFR4.place(relx = 0.5, rely = 0.03, anchor = "w")
Ent4 = Tkinter.Entry(LaFR4)
Ent4["width"] = 10
Inform.append(Ent4)
Ent4.pack()
LaFR5= Tkinter.LabelFrame(self.FRC)
LaFR5["text"] = u"Степень"
LaFR5["font"] = all_font
LaFR5.place(relx = 0.66, rely = 0.03, anchor = "w")
def big(event = None):
MB_NEW["text"] = (NEW_text[event])
self.stepen = MB_NEW["text"]
#self.Inform.append(MB_NEW["text"])
MB_NEW = Tkinter.Menubutton(LaFR5, relief = "raised", justify = "center")
MB_NEW.menu = Tkinter.Menu(MB_NEW, tearoff = 0)
MB_NEW ["menu"] = MB_NEW.menu
MB_NEW ["bg"] = "grey"
MB_NEW ["activebackground"] = "white"
MB_NEW ["width"] = 15
NEW_text = [u"Специалист", u"Бакалавр", u"Магистр", u" Выбрать " ]
MB_NEW["text"] = (NEW_text[3])
NEW = []
for i in NEW_text:
NEW.append(i)
MB_NEW.menu.add("cascade", label = NEW[0], command = lambda m=0 :big(m))
MB_NEW.menu.add("cascade", label = NEW[1], command = lambda m=1 :big(m))
MB_NEW.menu.add("cascade", label = NEW[2], command = lambda m=2 :big(m))
MB_NEW.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")
Ent6 = Tkinter.Entry(LaFR6)
Ent6["width"] = 40
Inform.append(Ent6)
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")
Ent7 = Tkinter.Entry(LaFR7)
Ent7["width"] = 40
Inform.append(Ent7)
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")
Ent8 = Tkinter.Entry(LaFR8)
Ent8["width"] = 40
Inform.append(Ent8)
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")
Ent9 = Tkinter.Entry(LaFR9)
Ent9["width"] = 40
Inform.append(Ent9)
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")
Ent10 = Tkinter.Entry(LaFR10)
Ent10["width"] = 40
Inform.append(Ent10)
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")
Ent11 = Tkinter.Entry(LaFR11)
Ent11["width"] = 40
Inform.append(Ent11)
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["width"] = 150
self.ST["height"] =7
#self.self.ND = ST.get()
#Inform.append(ST)
#mm = ST.get()
#print self.ND
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")
Ent12 = Tkinter.Entry(LaFR12)
Ent12["width"] = 32
#Ent12 ["bd"] = 6
Inform.append(Ent12)
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")
Ent13 = Tkinter.Entry(LaFR13)
Ent13["width"] = 32
Inform.append(Ent13)
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")
Ent14 = Tkinter.Entry(LaFR14)
Ent14["width"] = 32
Inform.append(Ent14)
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")
Ent15 = Tkinter.Entry(LaFR15)
Ent15["width"] = 32
Inform.append(Ent15)
Ent15.pack()
#Создание полей ввода пути к файлам
LaFR_Date_5 = Tkinter.LabelFrame(self.FRC)
LaFR_Date_5["text"] = u"Опредиление путей к файлам"
LaFR_Date_5["font"] = all_font
LaFR_Date_5.place(relx = 0.01, rely = 0.63, anchor = "nw")
LaFR_Date_5["width"] = 924
LaFR_Date_5["height"] = 120
def path_pict(event = None):
M = u"Выберете папку с изображениями и нажмите ОК"
path1 = tkFileDialog.askdirectory(title=M)
path_label1 = Tkinter.Label(LaFR_Date_5)
path_label1.place(relx = 0.65, rely = 0.7, anchor = "center")
path_label1['borderwidth'] = 5
path_label1["font"] = all_font
path_label1["height"] = 2
path_label1["width"] = 40
path_label1['text'] = path1
self.path_pict = path1
def path_pdf():
P = u"Выберете файл с текстом"
path = tkFileDialog.askopenfilename(title=P)
path_label = Tkinter.Label(LaFR_Date_5)
path_label.place(relx = 0.65, rely = 0.25, anchor = "center")
#path_label["bg"] = "red"
path_label['borderwidth'] = 5
path_label["font"] = all_font
path_label["height"] = 2
path_label["width"] = 40
path_label['text'] = path
self.path_pdf = path
#Создание кнопок
But3 = Tkinter.Button(LaFR_Date_5)
But3["bg"] = "white"
But3["bd"] = "1m"
But3["width"] = 30
But3 ["font"] = all_font
But3["relief"] = "raised"
But3.place(relx = 0.2, rely = 0.25, anchor = "center")
But3["text"] = u"Путь к документу с текстом"
But3["command"] = path_pdf
But4 = Tkinter.Button(LaFR_Date_5)
But4["width"] = 30
But4["bg"] = "white"
But4["bd"] = "1m"
But4 ["font"] = all_font
But4["relief"] = "raised"
But4.place(relx = 0.2, rely = 0.7, anchor = "center")
But4["text"] = u"Путь к изображениям"
But4["command"] = path_pict
But1 = Tkinter.Button(self.FRC)
But1["bg"] = "white"
But1["bd"] = "1m"
But1 ["font"] = all_font
But1["relief"] = "raised"
But1.place(relx = 0.25, rely = 0.85, anchor = "center")
But1["text"] = u"Отмена"
But1.bind("<Button-1>",otmena)
But2 = Tkinter.Button(self.FRC)
But2["bg"] = "white"
But2 ["font"] = all_font
But2["bd"] = "1m"
But2["relief"] = "raised"
But2.place(relx = 0.75, rely = 0.85, anchor = "center")
But2["text"] = u"Сохранить"
But2.bind("<Button-1>", Seve_inform)
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"
new_data(root,all_font)
root.mainloop()