Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Python_курсовая.docx
Скачиваний:
68
Добавлен:
02.02.2015
Размер:
1.01 Mб
Скачать

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()

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]