Разработка базы данных на языке программирования Python

Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 27.02.2015
Размер файла 3,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Кафедра автомобиле- и тракторостроения

КУРСОВАЯ РАБОТА

По курсу информатики

На тему:

Разработка базы данных на языке программирования Python

РЕФЕРАТ

Объект разработки - база данных для хранения дипломных проектов.

Цель работы - разработка базы данных на языке программирования Python.

Во время выполнения работы была разработана структура базы данных, были созданы окна, включая технологию переходов, разработан внешний вид окон и в итоге была создана база данных в среде объектно-ориентированного программирования phyton.

База данных была экспериментально опробована, в результате чего было установлено, что существенных ошибок в коде программы не выявлено. Программа может быть успешно применена в работе стат. отделов ВУЗов.

Содержание:

Вступление

Структура б/д

Окна ввода-вывода информации

Технология переходов

Листинг с пояснениями

Специальное задание

Направления улучшения

Вывод

Список использованной литературы

Вступление

Актуальность хранения информации в электронном виде заключается в том, что бумажная документация имеет срок годности и портиться со временем. Для долгосрочного хранения информации гораздо удобнее использовать электронные базы данных.

К настоящему времени человечеством накоплено поистине гигантское количество информации об объектах и явлениях. Но эта информация не лежит мертвым грузом, она хранится в электронном виде и используется в базах данных. Базы данных - это часть информационных систем - программно-аппаратных комплексов, осуществляющих хранение и обработку огромных информационных массивов.

База данных представляет собой определенным образом структурированную совокупность данных, совместно хранящихся и обрабатывающихся в соответствии с некоторыми правилами. Как правило, база данных моделирует некоторую предметную область или ее фрагмент. Очень часто в качестве постоянного хранилища информации баз данных выступают файлы.

Программа, производящая манипуляции с информацией в базе данных, называется СУБД (система управления базами данных). Она может осуществлять выборки по различным критериям и выводить запрашиваемую информацию в том виде, который удобен пользователю. Основными составляющими информационных систем, построенных на основе баз данных, являются файлы БД, СУБД и программное обеспечение (клиентские приложения), позволяющие пользователю манипулировать информацией и совершать необходимые для решения его задач действия.

Информация, которая хранится в базе данных, может постоянно пополняться. От того, как часто это делается, зависит ее актуальность. Информацию об объектах также можно изменять и дополнять.

В нашем случае создана база данных для хранения дипломных проектов студентов всех факультетов, групп и специальностей. Для поиска дипломов разработана удобная технология переходов между окнами.

Структура базы данных

Исходя из задания была разработана база данных:

Рисунок 1 - Структура базы данных Base_stud.bso

Окна ввода/вывода информации

Окно «А»

Окно «А» выполняет функции входа

Окно «В»

В этом окне можно добавить диплом или открыть уже готовый. Так же можно настроить параметры шрифта и прочесть о готовой б/д.

Окно «С»

Окно «С» служит для ввода всей информации о студенте, также здесь указуються пути к документу с текстом и папке с изображениями.

В окне «D» выполняется поиск записей по заданным параметрам

Окно «D»

Окно «P»

Окно «P» служит для вывода полной информации по студенту

Технология переходов

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Листинг с пояснениями

база данный диплом python

osnovnoe okno.py

# -*- coding: utf-8 -*-

import Tkinter

import string

import tkMessageBox

import sys

import os

import New_Data

import Font

import Find_Data

import Copy_Rez

import O_Prog

import tkFont

class system:

def __init__(self, root, all_font):

self(root, all_font)

def __call__(self, root, all_font):

def font(event = None):

Font.font(root)

def VHOD (event = None):

if self.tip_dostupa == u"Студент":

B()

else:

pass

def B (even = None):

#if even == u"Студент":

def close_all_prevision(event = None):

try:

del (self.C.FRC)

print u"Окно С закрыто"

except: pass

try:

del(self.D.FRD)

print u"Окно D закрыто"

except:

pass

try:

del(self.E.FRE)

print u"Окно E закрыто"

except:

pass

try:

del(self.K)

print u"Окно K закрыто"

except:

pass

try:

del(self.O.FRO)

print u"Окно O закрыто"

except:

pass

#Создание окна "Новая запись"

def Window_C(event = None):

close_all_prevision()

self.C= New_Data.new_data(root,all_font)

#Создание окна "Найти запись"

def Window_D(event = None):

close_all_prevision()

self.D = Find_Data.find_data(root,all_font)

#Создание окна "Резервное копирование"

def Window_E (event = None):

close_all_prevision()

self.E = Copy_Rez.copy_rez(root,all_font)

#Создание окна "Шрифты"

def Window_K(event = None):

close_all_prevision()

self.K = Font.font(root,all_font)

def Window_O(event = None):

close_all_prevision()

self.O = O_Prog.o_prog(root,all_font)

FR.destroy()

root.geometry("1024x768+0+0")

root.update()

root.title(u"База данных дипломных робот студентов ТМ факультета")

Bar = Tkinter.Menu(root)

Bar ["font"] = all_font

Bar["tearoff"] = 0

Menu1 = Tkinter.Menu(Bar, tearoff = 0 , font = all_font)

Menu1.add_command(label = u"Новая запись", command = Window_C)

Menu1.add_command(label = u"Найти запись", command = Window_D)

Menu1.add_command(label = u"Резервное копирование", command =

Window_E)

Menu1.add_command(label = u"Общая информация")

Menu1.add_separator()

Menu1.add_command(label = u"Выход", command=die)

Vid = Tkinter.Menu(Bar, tearoff = 0 , font = all_font)

Vid.add_command(label = u"Размер")

Vid.add_command(label = u"Шрифты",command = Window_K)

Prog = Tkinter.Menu(Bar, tearoff = 0 , font = all_font)

Prog.add_command(label = u"Помощь")

Prog.add_command(label = u"О программе", command = Window_O)

Bar.add_cascade(label = u"Управление базой", menu = Menu1)

Bar.add_cascade(label = u"Настройка вида", menu = Vid)

Bar.add_cascade(label = u"О программе", menu = Prog)

root.config(menu=Bar)

root.mainloop()

#else:

#pass

#Изминение состояния полей ввода и кнопок

def var123 (even = None):

if even == u"Студент":

Ent1["state"] = "disabled"

Ent2["state"] = "disabled"

But2["state"] = "normal"

else:

Ent1["state"] = "normal"

Ent2["state"] = "normal"

But2["state"] = "normal"

#Закрытие программы

def die(even = None):

response = tkMessageBox.askyesno(u"Важно!!!",u"Закрыть базу данных

дипломных работ студентов ТМ-факультета?")

r = response

if r == 1:

sys.exit(0)

else:

responce.destroy()

FR = Tkinter.Frame(root)

FR["width"] = 250

FR["height"] = 300

FR.place(relx = 0.5, rely = 0.5, anchor = "center" )

FR["bg"] = "white"

FR ["bd"] = "4m"

FR["relief"] = "groove"

#Меню "Тип доступа"

def big(event = None):

MB_NEW["text"] = (NEW_text[event])

var123(NEW_text[event])

self.tip_dostupa = NEW_text[event]

MB_NEW = Tkinter.Menubutton(FR, relief = "raised", justify = "center")

MB_NEW.place(relx = 0.5, rely = 0.2, anchor = "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"] = 20

NEW_text = [u"Администратор", u"Преподаватель", u"Студент"]

MB_NEW["text"] = (u"Тип доступа")

NEW = []

for i in NEW_text:

NEW.append(i+" "*(20-len(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))

#Поле ввода "Имя пользователя"

LaFR1 = Tkinter.LabelFrame(FR)

LaFR1["text"] = u"Имя пользователя"

LaFR1.place(relx = 0.5, rely = 0.4, anchor = "center")

Ent1 = Tkinter.Entry(LaFR1)

Ent1["width"] = 25

Ent1["state"] = "disabled"

Ent1.pack()

name = Ent1

#Поле ввода "Пароль"

LaFR2 = Tkinter.LabelFrame(FR)

LaFR2["text"] = u"Пароль"

LaFR2.place(relx = 0.5, rely = 0.55, anchor = "center")

Ent2 = Tkinter.Entry(LaFR2)

Ent2["width"] = 25

Ent2["state"] = "disabled"

Ent2 ["show"] = "*"

Ent2.pack()

parol = Ent2

#Кнопка "Вход"

But2 = Tkinter.Button(FR)

But2["bg"] = "white"

But2["bd"] = "1m"

But2["relief"] = "raised"

But2["text"] = u"Вход"

But2["state"] = "disabled"

But2.place(relx = 0.4, rely = 0.8, anchor = "center")

But2.bind("<Button-1>",VHOD)

But2.bind("<Return>", VHOD)

#Кнопка "Выход"

But1 = Tkinter.Button(FR)

But1["bg"] = "white"

But1["bd"] = "1m"

But1["relief"] = "raised"

But1.place(relx = 0.2, rely = 0.8, anchor = "center")

But1["text"] = u"Выход"

But1.bind("<Button-1>", die)

#Кнопка "Регистрация"

But3 = Tkinter.Button(FR)

But3["bg"] = "white"

But3["bd"] = "1m"

But3["relief"] = "raised"

But3.place(relx = 0.7, rely = 0.8, anchor = "center")

But3["text"] = u"Регистрация"

But3.bind("<Button-1>")

root.mainloop()

if __name__ == "__main__":

root = Tkinter.Tk()

vysota_vhod = root.winfo_screenheight()

shyrina_vhod = root.winfo_screenwidth()

x_vhod = (shyrina_vhod / 2) - 125

y_vhod = (vysota_vhod / 2) - 150

razm_x_y = "250x300+%s+%s"%(x_vhod,y_vhod)

root.geometry(razm_x_y)

root.title(u"Вход в базу данных дипломных проэктов

all_font = tkFont.Font()

all_font ["family"] = "Helvetica"

all_font ["size"] = 15

all_font ["weight"] = "normal"

system(root,all_font)

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","Nam

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

Find_Data.py

# -*- coding: cp1251 -*-

import Tkinter

import ScrolledText

import tkFont

import os

import string

import pickle

import tkFileDialog

import Image

import ImageTk

import preview_find

#окно "D" - поиск данных

class find_data:

def __init__(self, root, all_font):

self(root, all_font)

def __call__(self, root, all_font):

self.FRD = Tkinter.Frame(root)

self.FRD["width"] = 1024

self.FRD["height"] = 768

self.FRD.place(relx = 0, rely = 0, anchor = "nw" )

self.FRD.pack()

#************************************************************

************************

def find_data (event = None):

self.baza_vsia_sort = []

self.baza_vsia = []

self.u =

['C:\\TM_Base\\Bakalavr\\',"C:\\TM_Base\\Spec\\",'C:\\TM_Base\\Magistr\\]

for m in self.u:

os.chdir(m)

self.p = m

#print self.baza_vsia_sort

#print self.dictonary_find.keys()

for w in self.dictonary_find.keys():

#print self.dictonary_find.get(w)

self.folders = []

self.baza_vsia_sort

if w == "1":

folders = os.listdir(m)

for i in folders:

if i[-4] != '.':

self.folders.append(i)

for i in self.folders:

self.path_2 = self.p + i

os.chdir(self.path_2)

base = open ("Base_stud.bso" , "rb")

self.k = pickle.load(base)

base.close()

poisk = self.dictonary_find.get(w)[0]

data = self.dictonary_find.get(w)[1]

data_sr = self.k.get(poisk)

#if data.decode("cp1251") == data_sr:

if data == data_sr:

self.baza_vsia.append(self.k)

#print self.baza_vsia

else:

#print len(self.baza_vsia)

#print "baza vsja"

#print self.baza_vsia

for i in range(0, len(self.baza_vsia)):

b = self.baza_vsia[i]

#print b

poisk = self.dictonary_find.get(w)[0]

data = self.dictonary_find.get(w)[1]

data_sr = b.get(poisk)

if data == data_sr:

self.baza_vsia_sort.append(b)

#print "2"

#print self.baza_vsia_sort

self.baza_vsia = []

#print self.baza_vsia

#print self.baza_vsia_sort

def find_data_tabl(event = None):

self.dictonary_find.keys()

self.Frame_Listbox.destroy()

sroot_widget_create()

self.kol = 0

self.vibor = self.kol

self.Label_02 ["text"] = u"ФИО"

self.Label_03 ["text"] = u"Год защиты"

for i in self.baza_vsia:

self.base_for_prosmotr = []

print "2"

self.kol = self.kol + 1

m = i

key_1 = m.get("SName_S")

key_2 = m.get("Name_S")

key_3 = m.get("LName_S")

text_list_02 = key_1 + " " + key_2 + " " + key_3

text_list_03 = m.get("God_1")

self.Listbox_01.insert("end", self.kol)

self.Listbox_02.insert("end", text_list_02)

self.Listbox_03.insert("end", text_list_03)

self.base_for_prosmotr = self.baza_vsia

if len(self.baza_vsia_sort[0]) > 0:

self.base_for_prosmotr = self.baza_vsia_sort

for i in self.baza_vsia_sort:

print u"второй отбор"

self.kol = self.kol + 1

m = i

key_1 = m.get("SName_S")

key_2 = m.get("Name_S")

key_3 = m.get("LName_S")

text_list_02 = key_1 + " " + key_2 + " " + key_3

text_list_03 = m.get("God_1")

self.Listbox_01.insert("end", self.kol)

self.Listbox_02.insert("end", text_list_02)

self.Listbox_03.insert("end", text_list_03)

else:

print u"параметр поиска только один"

def die (event = None):

print self.baza_vsia_sort

print self.baza_vsia

self.FRD.destroy()

self.kol = 0

self.dictonary_find = {}

param_for_poisk = []

def DOBAVIT (event = None):

self.kol = self.kol + 1

self.vibor = self.kol

try:

text_list_03 = self.Znachenie_data.get()

except:

text_list_03 = self.Znachenie_data

self.Listbox_01.insert("end", self.kol)

self.Listbox_02.insert("end", self.vibor_data)

self.Listbox_03.insert("end", text_list_03)

param_for_poisk = []

param_for_poisk.append(self.parametp_poiska)

param_for_poisk.append(text_list_03)

#print param_for_poisk

if self.kol == 1:

ch = "1"

elif self.kol == 2:

ch = "2"

elif self.kol == 3:

ch = "3"

elif self.kol == 4:

ch = "4"

elif self.kol == 5:

ch = "5"

elif self.kol == 6:

ch = "6"

self.dictonary_find[ch] = param_for_poisk

self.l_spis = self.kol

#print self.dictonary_find

def preview_inf (event = None):

print self.base_for_prosmotr

preview_find.preview_find(root,all_font,self.base_for_prosmotr,event)

def Clear(event =None):

self.Frame_Listbox.destroy()

#print "listbox.destroy"

self.kol = 0

self.dictonary_find = {}

sroot_widget_create()

def destroy_pole(event = None):## убивает открытие поля

try:

self.MB_Spec.destroy()

except:

pass

try:

self.EntD1.destroy()

except:

pass

try:

self.MB_Stepen.destroy()

except:

pass

try:

self.MB_Mark.destroy()

except:

pass

try:

self.Ent_Name.destroy()

except:

pass

try:

self.Ent_SName.destroy()

except:

pass

try:

self.Ent_LName.destroy()

except:

pass

try:

self.Ent_Kol_page.destroy()

except:

pass

try:

self.Ent_Kol_pict.destroy()

except:

pass

try:

self.Ent_Kol_plac.destroy()

except:

pass

try:

self.Ent_Kol_tabl.destroy()

except:

pass

try:

self.Ent_Theme.destroy()

except:

pass

try:

self.God.destroy()

except:

pass

def Spec(event = None):## выбор специальности

self.EntD1 = Tkinter.Entry(self.FRD)

self.EntD1.place(relx = 0.5, rely = 0.1, anchor = "w")

self.EntD1['font'] = all_font

self.EntD1["width"] = 20

self.Znachenie_data = self.EntD1

def Grup(event = None):## поле ввода "Группа"

self.EntD1 = Tkinter.Entry(self.FRD)

self.EntD1.place(relx = 0.5, rely = 0.1, anchor = "w")

self.EntD1['font'] = all_font

self.EntD1["width"] = 20

self.Znachenie_data = self.EntD1

def Mark (event = None): ## поле ввода "Оценка"

def m (event = None):

self.MB_Mark["text"] = event

self.Znachenie_data = event

self.MB_Mark = Tkinter.Menubutton(self.FRD, relief = "raised", justify =

"center")

self.MB_Mark.place(relx = 0.5, rely = 0.1, anchor = "w")

self.MB_Mark.menu = Tkinter.Menu(self.MB_Mark, tearoff = 0)

self.MB_Mark ["menu"] = self.MB_Mark.menu

self.MB_Mark ["bg"] = "white"

self.MB_Mark ["font"] = all_font

self.MB_Mark ["width"] = 20

self.MB_Mark["text"] = (u"Вибрать оценку")

#self.MB_Mark.menu.add("cascade", label = u"1", command = lambda

s=u"1" :m(s))

#self.MB_Mark.menu.add("cascade", label = u"2", command = lambda

s=u"2" :m(s))

self.MB_Mark.menu.add("cascade", label = u"3", command = lambda

s=u"3" :m(s))

self.MB_Mark.menu.add("cascade", label = u"4", command = lambda

s=u"4" :m(s))

self.MB_Mark.menu.add("cascade", label = u"5", command = lambda

s=u"5" :m(s))

def Stepen (event = None): ## поле ввода "степень"

def st (event = None):

self.MB_Stepen["text"] = event

self.Znachenie_data = event

self.MB_Stepen = Tkinter.Menubutton(self.FRD, relief = "raised", justify =

"center")

self.MB_Stepen.place(relx = 0.5, rely = 0.1, anchor = "w")

self.MB_Stepen.menu = Tkinter.Menu(self.MB_Stepen, tearoff = 0)

self.MB_Stepen ["menu"] = self.MB_Stepen.menu

self.MB_Stepen ["bg"] = "white"

self.MB_Stepen ["font"] = all_font

self.MB_Stepen ["width"] = 20

self.MB_Stepen["text"] = (u"Вибрать степень")

self.MB_Stepen.menu.add("cascade", label = u"Бакалавр", command =

lambda s=u"Бакалавр" :st(s))

self.MB_Stepen.menu.add("cascade", label = u"Специалист", command =

lambda s=u"Специалист" :st(s))

self.MB_Stepen.menu.add("cascade", label = u"Магистр", command =

lambda s=u"Магистр" :st(s))

def Name(event = None):## поле ввода "Имя"

self.Ent_Name = Tkinter.Entry(self.FRD)

self.Ent_Name.place(relx = 0.5, rely = 0.1, anchor = "w")

self.Ent_Name ['font'] = all_font

self.Ent_Name["width"] = 30

self.Znachenie_data = self.Ent_Name

def SName(event = None):## поле ввода "ФАМИЛИЯ"

self.Ent_SName = Tkinter.Entry(self.FRD)

self.Ent_SName.place(relx = 0.5, rely = 0.1, anchor = "w")

self.Ent_SName ['font'] = all_font

self.Ent_SName["width"] = 30

self.Znachenie_data = self.Ent_SName

def LName(event = None):## поле ввода "ОТЧЕСТВО"

self.Ent_LName = Tkinter.Entry(self.FRD)

self.Ent_LName.place(relx = 0.5, rely = 0.1, anchor = "w")

self.Ent_LName ['font'] = all_font

self.Ent_LName["width"] = 30

self.Znachenie_data = self.Ent_LName

def Kol_page(event = None): ## поле ввода "КОЛИЧЕСТВО СТРАНИЦ"

self.Ent_Kol_page = Tkinter.Entry(self.FRD)

self.Ent_Kol_page.place(relx = 0.5, rely = 0.1, anchor = "w")

self.Ent_Kol_page ['font'] = all_font

self.Ent_Kol_page["width"] = 30

self.Znachenie_data = self.Ent_Kol_page

def Kol_plac(event = None): ## поле ввода "КОЛИЧЕСТВО

ПЛАКАТОВ"

self.Ent_Kol_plac = Tkinter.Entry(self.FRD)

self.Ent_Kol_plac.place(relx = 0.5, rely = 0.1, anchor = "w")

self.Ent_Kol_plac ['font'] = all_font

self.Ent_Kol_plac["width"] = 30

self.Znachenie_data = self.Ent_Kol_plac

def Kol_pict(event = None):## поле ввода "КОЛИЧЕСТВО РИСУНКОВ"

self.Ent_Kol_pict = Tkinter.Entry(self.FRD)

self.Ent_Kol_pict.place(relx = 0.5, rely = 0.1, anchor = "w")

self.Ent_Kol_pict ['font'] = all_font

self.Ent_Kol_pict["width"] = 30

self.Znachenie_data = self.Ent_Kol_pict

def Kol_tabl(event = None): ## поле ввода "КОЛИЧЕСТВО ТАБЛИЦ

self.Ent_Kol_tabl = Tkinter.Entry(self.FRD)

self.Ent_Kol_tabl.place(relx = 0.5, rely = 0.1, anchor = "w")

self.Ent_Kol_tabl ['font'] = all_font

self.Ent_Kol_tabl["width"] = 30

self.Znachenie_data = self.Ent_Kol_tabl

def God (event = None):## поле ввода "КОЛИЧЕСТВО РИСУНКОВ"

self.God = Tkinter.Entry(self.FRD)

self.God.place(relx = 0.5, rely = 0.1, anchor = "w")

self.God ['font'] = all_font

self.God ["width"] = 30

self.Znachenie_data = self.God

def Param(event = None):##при выборе параметра открывается новое

поле ввода\выбора

MB_PARAM["text"] = event

if event == u"Специальность":

destroy_pole()

Spec()

self.parametp_poiska = "Spec"

elif event == u"Группа":

destroy_pole()

Grup()

self.parametp_poiska = "Grup"

elif event == u"Оценка":

destroy_pole()

Mark()

self.parametp_poiska = "Mark"

elif event == u"Степень":

destroy_pole()

Stepen()

self.parametp_poiska = "Stepen"

elif event == u"Имя":

destroy_pole()

Name()

self.parametp_poiska = "Name_S"

elif event == u"Фамилия":

destroy_pole()

SName()

self.parametp_poiska = 'SName_S'

elif event == u"Отчество":

destroy_pole()

LName()

self.parametp_poiska = "LName_S"

elif event == u"Количество страниц":

destroy_pole()

Kol_page()

self.parametp_poiska = "page"

elif event == u"Количество плакатов":

destroy_pole()

Kol_plac()

self.parametp_poiska = "plac"

elif event == u"Количество рисунков":

destroy_pole()

Kol_pict()

self.parametp_poiska = "pict"

elif event == u"Количество таблиц":

destroy_pole()

Kol_tabl()

self.parametp_poiska = "tabl"

elif event == u"Год":

destroy_pole()

God()

self.parametp_poiska = "God_1"

self.vibor_data = event

root.title(u"Найти запись")

#root.geometry("1024x768+0+0")

But_OK = Tkinter.Button(self.FRD)

But_OK ["text"] = u"Добавить"

But_OK.place(relx = 0.5, rely = 0.25, anchor = "center")

But_OK["height"] = 1

But_OK ["width"] = 20

But_OK ["font"] = all_font

But_OK.bind("<Button-1>",DOBAVIT)

But_Clear = Tkinter.Button(self.FRD)

But_Clear ["text"] = u"Очистить список"

But_Clear.place(relx = 0.5, rely = 0.75, anchor = "center")

But_Clear["height"] = 1

But_Clear ["width"] = 20

But_Clear ["font"] = all_font

But_Clear.bind("<Button-1>", Clear)

But_Otmena = Tkinter.Button(self.FRD)

But_Otmena ["text"] = u"Отмена"

But_Otmena.place(relx = 0.2, rely = 0.85, anchor = "center")

But_Otmena["height"] = 1

But_Otmena ["width"] = 25

But_Otmena ["font"] = all_font

But_Otmena.bind("<Button-1>", die)

But_Find = Tkinter.Button(self.FRD)

But_Find ["text"] = u"Искать"

But_Find.place(relx = 0.8, rely = 0.85, anchor = "center")

But_Find["height"] = 1

But_Find ["width"] = 25

But_Find ["font"] = all_font

But_Find.bind("<Button-1>",find_data)

But_Find.bind("<ButtonRelease>",find_data_tabl)

# основное меню параметров поиска

MB_PARAM = Tkinter.Menubutton(self.FRD, relief = "raised", justify =

"center")

MB_PARAM.place(relx = 0.2, rely = 0.1, anchor = "center")

MB_PARAM.menu = Tkinter.Menu(MB_PARAM, tearoff = 0)

MB_PARAM ["menu"] = MB_PARAM.menu

MB_PARAM ["bg"] = "white"

MB_PARAM ["font"] = all_font

MB_PARAM ["width"] = 25

MB_PARAM["text"] = (u"Параметр поиска")

MB_PARAM.menu.add("cascade", label = u"Специальность", command =

lambda p=u"Специальность" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Группа", command = lambda

p=u"Группа" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Оценка", command = lambda

p=u"Оценка" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Степень", command = lambda

p=u"Степень" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Имя", command = lambda

p=u"Имя" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Фамилия", command =

lambda p=u"Фамилия" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Отчество", command =

lambda p=u"Отчество" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Количество страниц",

command = lambda p=u"Количество страниц" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Количество плакатов",

command = lambda p=u"Количество плакатов" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Количество рисунков",

command = lambda p=u"Количество рисунков" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Количество таблиц",

command = lambda p=u"Количество таблиц" :Param(p))

#MB_PARAM.menu.add("cascade", label = u"Тема дипломного проэкта",

command = lambda p=u"Тема дипломного проэкта" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Год", command = lambda

p=u"Год" :Param(p))

#************************************************************

************************

#Создание таблиц:

def sroot_widget_create(event = None):

self.status = 0 ## Окон верхнего уровня не существует

def analis(event = None): ## Опеределяем направление прокручинвания

для мышки (MouseWhell)

try: ## Чтобы для внешнего виджета не работало

self.Frame_Listbox.focus_set()

Perehod()

if event.delta < 0:

Down()

else:

Up()

except:

pass

def Clear(event = None):

self.Listbox_01.select_clear("active")

self.Listbox_02.itemconfig(self.pos, bg = "white")

self.Listbox_03.itemconfig(self.pos, bg = "white")

def Perehod(event = None):

self.Listbox_01.activate(self.pos)

self.Listbox_01.select_set(self.pos)

self.Listbox_02.itemconfig(self.pos, bg = "grey")

self.Listbox_03.itemconfig(self.pos, bg = "grey")

def Hod(event = None):

self.vibor = string.atoi(self.Listbox_01.curselection()[0])

self.pos = self.vibor

def bind_but(event = None):

## На левую клавишу мыши

self.Frame_Listbox.focus_set()

try: self.vibor = string.atoi(self.Listbox_01.curselection()[0])

except: pass

try: self.vibor = string.atoi(self.Listbox_02.curselection()[0])

except: pass

try: self.vibor = string.atoi(self.Listbox_03.curselection()[0])

except: pass

self.pos = self.vibor

#print self.vibor

preview_inf(self.vibor)

Perehod()

from_focus_out()

## На левую клавишу мыши

def alt_bind_but(event = None):

## На альт + левая клваиша

self.Frame_Listbox.focus_set()

try: self.vibor = string.atoi(self.Listbox_01.curselection()[0])

except: pass

try: self.vibor = string.atoi(self.Listbox_02.curselection()[0])

except: pass

try: self.vibor = string.atoi(self.Listbox_03.curselection()[0])

except: pass

self.pos = self.vibor

print "alt"

Perehod()

from_focus_out()

## На альт + левая клваиша

self.l_spis = 1

self.vibor = 0

self.h_spis = 10

self.pos = 0

self.prev_verh = 0

self.prev_nizz = self.h_spis - 1

def Down(event = None): ## Кнопка вниз - перемещение вниз всех

четырех списков

Clear()

if self.pos < self.l_spis - 1:

self.pos = self.pos + 1

Perehod()

## Прокручиваем списки

## Если список находится в границе видимой облафсти - ее верх и низ

не меняется

if self.pos > self.prev_nizz:

self.prev_nizz = self.prev_nizz + 1

self.prev_verh = self.prev_verh + 1

if self.pos < self.prev_nizz:

pass

if self.pos == self.prev_nizz:

pass

self.Listbox_01.see(self.prev_nizz)

self.Listbox_02.see(self.prev_nizz)

self.Listbox_03.see(self.prev_nizz)

self.Listbox_01.see(self.prev_verh)

self.Listbox_02.see(self.prev_verh)

self.Listbox_03.see(self.prev_verh)

## Прокручиваем списки

def Up(event = None): ## Кнопка вверх - перемещение вверх всех трех

списков

Clear()

if self.pos > 0:

self.pos = self.pos - 1

Perehod()

## Прокручиваем списки

## Если список находится в границе видимой облафсти - ее верх и низ

не меняется

if self.pos < self.prev_verh:

self.prev_nizz = self.prev_nizz - 1

self.prev_verh = self.prev_verh - 1

if self.pos > self.prev_verh:

pass

if self.pos == self.prev_verh:

pass

self.Listbox_01.see(self.prev_nizz)

self.Listbox_02.see(self.prev_nizz)

self.Listbox_03.see(self.prev_nizz)

self.Listbox_01.see(self.prev_verh)

self.Listbox_02.see(self.prev_verh)

self.Listbox_03.see(self.prev_verh)

## Прокручиваем списки

self.Frame_Listbox = Tkinter.LabelFrame(self.FRD)

self.Frame_Listbox ["text"] = u"Уровни отсеивания"

self.Frame_Listbox ["labelanchor"] = "n"

self.Frame_Listbox ["relief"] = "ridge"

self.Frame_Listbox ["takefocus"] = 1

self.Frame_Listbox.bind("<Down>", Down)

self.Frame_Listbox.bind("<Up>", Up)

self.Frame_Listbox.bind_all("<MouseWheel>", analis)

self.Frame_Listbox.bind("<KeyRelease-Return>", Hod)

self.Frame_Listbox.bind("<KeyRelease-space>", Hod)

self.Frame_Listbox.place(relx = 0.5, rely = 0.5, anchor = "center")

#self.Frame_Listbox.focus_force()

Label_01 = Tkinter.Label(self.Frame_Listbox)

Label_01 ["text"] = u"Номер"

Label_01.grid(row = 1, column = 1, sticky = "ensw")

self.Label_01 = Label_01

Label_02 = Tkinter.Label(self.Frame_Listbox)

Label_02 ["text"] = u"Параметр"

Label_02.grid(row = 1, column = 2, sticky = "ensw")

self.Label_02 = Label_02

Label_03 = Tkinter.Label(self.Frame_Listbox)

Label_03 ["text"] = u"Значение"

Label_03.grid(row = 1, column = 3, sticky = "ensw")

self.Label_03 = Label_03

self.Scrol_BA = Tkinter.Scrollbar(self.Frame_Listbox)

self.Scrol_BA ["command"] = self.OnVsb

self.Listbox_01 = Tkinter.Listbox(self.Frame_Listbox)

self.Listbox_01 ["takefocus"] = 0

self.Listbox_01 ["width"] = 10

self.Listbox_01 ["height"] = self.h_spis

self.Listbox_01 ["yscrollcommand"] = self.Scrol_BA.set

#self.Listbox_01.insert("end", *date)

self.Listbox_01.select_set(self.vibor)

self.Listbox_01.activate(self.vibor)

self.Listbox_01.bind("<ButtonRelease-1>", bind_but)

self.Listbox_01.bind("<Alt-ButtonRelease-1>", alt_bind_but)

self.Listbox_02 = Tkinter.Listbox(self.Frame_Listbox)

self.Listbox_02 ["takefocus"] = 0

self.Listbox_02 ["width"] = 32

self.Listbox_02 ["height"] = self.h_spis

self.Listbox_02 ["yscrollcommand"] = self.Scrol_BA.set

#self.Listbox_02.insert("end", *date_sl)

#self.Listbox_02.itemconfig(self.vibor, background = "grey")

self.Listbox_02.bind("<ButtonRelease-1>", bind_but)

self.Listbox_02.bind("<Alt-ButtonRelease-1>", alt_bind_but)

self.Listbox_03 = Tkinter.Listbox(self.Frame_Listbox)

self.Listbox_03 ["takefocus"] = 0

self.Listbox_03 ["width"] = 40

self.Listbox_03 ["height"] = self.h_spis

self.Listbox_03 ["yscrollcommand"] = self.Scrol_BA.set

#self.Listbox_03.insert("end", *date)

#self.Listbox_03.itemconfig(self.vibor, background = "grey")

self.Listbox_03.bind("<ButtonRelease-1>", bind_but)

self.Listbox_03.bind("<Alt-ButtonRelease-1>", alt_bind_but)

self.Listbox_01.grid(row = 2, column = 1, sticky = "ensw")

self.Listbox_02.grid(row = 2, column = 2, sticky = "ensw")

self.Listbox_03.grid(row = 2, column = 3, sticky = "ensw")

self.Scrol_BA.grid(row = 2, column = 6, sticky = "ensw")

def from_focus_in(event = None): ## При появлении фокуса - выделение

на бывший элемент

if self.status == 0: ## Переход между элементами root, а не окнами...

self.Listbox_01.select_set(self.vibor)

self.Listbox_01.activate(self.vibor)

self.Listbox_02.itemconfig(self.vibor, background = "grey")

self.Listbox_03.itemconfig(self.vibor, background = "grey")

self.Listbox_01.see(self.prev_nizz)

self.Listbox_02.see(self.prev_nizz)

self.Listbox_03.see(self.prev_nizz)

self.Listbox_01.see(self.prev_verh)

self.Listbox_02.see(self.prev_verh)

self.Listbox_03.see(self.prev_verh)

else: ## Переход между окнами - например, возвращение из окна

self.root_comment

self.status = 0

self.Frame_Listbox.bind("<FocusIn>", from_focus_in)

def from_focus_out (event = None): ## При потере фокуса - уходит и

выделение

self.Listbox_01.select_clear("active")

self.vibor = self.pos

for i in range(self.l_spis):

self.Listbox_02.itemconfig(i, background = "white")

self.Listbox_03.itemconfig(i, background = "white")

self.Frame_Listbox.bind("<FocusOut>", from_focus_out)

sroot_widget_create()

def __delattr__ (self, a):

self.FRD.destroy()

def OnVsb (self, *args): ## Для одновременного прокручивания

нескольких списков

self.Listbox_01.yview(*args)

self.Listbox_02.yview(*args)

self.Listbox_03.yview(*args)

if __name__ == "__main__":

root = Tkinter.Tk()

root.geometry("1024x768+0+0")

all_font = tkFont.Font()

all_font ["family"] = "Helvetica"

all_font ["size"] = 18

all_font ["weight"] = "normal"

find_data(root,all_font)

root.mainloop()

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","Nam

e_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',


Подобные документы

  • Создание программы для обработки информации об объектах предметной области "Бытовая техника" в среде визуального программирования C++. Иерархия родственных классов. Описание логической структуры программы. Реализация файлового ввода/вывода данных.

    курсовая работа [711,4 K], добавлен 27.07.2014

  • Разработка приложения для работы с базой данных с использованием объектно-ориентированного и визуального программирования. Обзор языка элементов языка программирования Delphi. Проектирование базы данных автозаправки. Клиентская система приложения.

    курсовая работа [2,3 M], добавлен 31.01.2016

  • Отличительные особенности языка программирования Python: низкий порог вхождения, минималистичный язык, краткий код, поддержка математических вычислений, большое количество развитых web-фреймворков. Традиционная модель выполнения программ на языке Python.

    реферат [51,9 K], добавлен 18.01.2015

  • Особенности программирования аркадных игр в среде Python. Краткая характеристика языка программирования Python, его особенности и синтаксис. Описание компьютерной игры "Танчики" - правила игры, пояснение ключевых строк кода. Демонстрация работы программы.

    курсовая работа [160,3 K], добавлен 03.12.2014

  • Программное обеспечение Python и ее основные характеристики, как программной среды. Общие сведения о языке программирования Python. Особенности применения ППП Python (x,y) с использованием его различных вычислительных модулей в учебном процессе.

    дипломная работа [2,9 M], добавлен 07.04.2019

  • Понятие и характеристики облачных технологий, модели их развертывания, технологические процессы, аспекты экономики и критика. Язык программирования Python, оценка функциональности, сравнение с аналогами. Управление облаком в Python на примере libcloud.

    курсовая работа [43,0 K], добавлен 08.06.2014

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal.

    курсовая работа [275,9 K], добавлен 22.12.2011

  • Автоматизированные базы данных в учебном процессе. Создание базы данных для МОУ СОШ № 12 с целью помощи в обеспечении централизованного управления, хранения информации об учениках. Требования к программе, условия эксплуатации. Программный код базы данных.

    дипломная работа [2,0 M], добавлен 25.03.2014

  • Создание базы данных и СУБД. Структура простейшей базы данных. Особенности языка программирования Турбо Паскаль. Описание типов, констант, переменных, процедур и функций. Описание алгоритма базы данных (для сотрудников ГИБДД), листинг программы.

    курсовая работа [26,3 K], добавлен 26.01.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.