Помощь в написании студенческих работ
Антистрессовый сервис

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

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

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

Разработка базы данных на языке программирования Python (реферат, курсовая, диплом, контрольная)

Кафедра автомобилеи тракторостроения КУРСОВАЯ РАБОТА По курсу информатики На тему:

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

РЕФЕРАТ Объект разработки — база данных для хранения дипломных проектов.

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

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

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

Вступление Структура б/д Окна ввода-вывода информации Технология переходов Листинг с пояснениями Специальное задание Направления улучшения Вывод Список использованной литературы Вступление Актуальность хранения информации в электронном виде заключается в том, что бумажная документация имеет срок годности и портиться со временем. Для долгосрочного хранения информации гораздо удобнее использовать электронные базы данных.

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

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

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

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

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

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

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

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

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

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

Окно «С»

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

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

Окно «P»

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

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

Листинг с пояснениями база данный диплом 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 («1024×768+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 (««, VHOD)

But2.bind (««, 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 (««, 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 (««)

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 = «250×300+%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.Param2[self.dosm[i]] = self. informatino[ss]

ss = ss + 1

print type (self.informatino[ss])

self.Param2[" Theme" ] = self.ST.get (index1 = 0.0,index2 = «end»)

self.Param2[" Stepen" ] = self. stepen

self.Param2[" 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])

key1 = self. Param2.get («Name_S»)

key2 = self. Param2.get («SName_S»)

key3 = self. Param2.get («LName_S»)

self.key_key = key2 +" _" + key1 +" _" + key3

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.Param2, self. stud_file)

except:

self.stud_file.close ()

self.stud_file = open («Base_stud.bso», «wb»)

pickle.dump (self.Param2, 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 («1024×768+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" ," God1″ ," Name_S" ," SName_S" ," LName_S" ," Nam

e_P" ," SName_P" ," LName_P" ," page" ," plac" ," pict" ," tabl" ]

#Parametry = [" Специальность" ," Группа" ," Оценка" ," Год

защити" ," Имя" ," Фамилия" ," Отчество" ," Имя2″ ," Фамилия2″ ," Отчество2″

" Тема дипломного проэкта" ," Количество страниц" ," Количество

плакатов" ," Количество рисунков" ," Количество таблиц" ]

self.Param2 =

{" Spec" :u" «,» Grup" :u" «,» Mark" :" «,» God1″ :" «,» 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_Date1 = Tkinter. LabelFrame (self.FRC)

LaFR_Date1[" text" ] = u" Данные о студенте"

LaFR_Date1[" font" ] = all_font

LaFR_Date1.place (relx = 0.01, rely = 0.12, anchor = «w»)

LaFR_Date1[" width" ] = 924

LaFR_Date1[" height" ] = 85

LaFR6 = Tkinter. LabelFrame (LaFR_Date1)

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

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

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_Date2 = Tkinter. LabelFrame (self.FRC)

LaFR_Date2[" text" ] = u" Данные о научном руководителе"

LaFR_Date2[" font" ] = all_font

LaFR_Date2.place (relx = 0.01, rely = 0.25, anchor = «w»)

LaFR_Date2[" width" ] = 924

LaFR_Date2[" height" ] = 85

LaFR9 = Tkinter. LabelFrame (LaFR_Date2)

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

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

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_Date3 = Tkinter. LabelFrame (self.FRC)

LaFR_Date3[" text" ] = u" Тема дипломного проэкта"

LaFR_Date3[" font" ] = all_font

LaFR_Date3.place (relx = 0.01, rely = 0.32, anchor = «nw»)

self.ST =ScrolledText.ScrolledText (LaFR_Date3, 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_Date4 = Tkinter. LabelFrame (self.FRC)

LaFR_Date4[" text" ] = u" Данные о дипломном проэкте"

LaFR_Date4[" font" ] = all_font

LaFR_Date4.place (relx = 0.01, rely = 0.55, anchor = «w»)

LaFR_Date4[" width" ] = 924

LaFR_Date4[" height" ] = 90

LaFR12 = Tkinter. LabelFrame (LaFR_Date4)

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

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

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

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_Date5 = Tkinter. LabelFrame (self.FRC)

LaFR_Date5[" text" ] = u" Опредиление путей к файлам"

LaFR_Date5[" font" ] = all_font

LaFR_Date5.place (relx = 0.01, rely = 0.63, anchor = «nw»)

LaFR_Date5[" width" ] = 924

LaFR_Date5[" height" ] = 120

def path_pict (event = None):

M = u" Выберете папку с изображениями и нажмите ОК"

path1 = tkFileDialog. askdirectory (title=M)

path_label1 = Tkinter. Label (LaFR_Date5)

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

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

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

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 (««, 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 (««, Seve_inform)

def __delattr__ (self, a):

self.FRC.destroy ()

#print u" ok))))))))))))))))))"

if __name__ == «__main__» :

root = Tkinter. Tk ()

root.geometry («1024×768+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.path2 = self. p + i

os.chdir (self.path2)

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.Label02 [" text" ] = u" ФИО"

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

for i in self. baza_vsia:

self.base_for_prosmotr = []

print «2»

self.kol = self. kol + 1

m = i

key1 = m. get («SName_S»)

key2 = m. get («Name_S»)

key3 = m. get («LName_S»)

text_list02 = key1 + «» + key2 + «» + key3

text_list03 = m. get («God1»)

self.Listbox01.insert («end», self. kol)

self.Listbox02.insert («end», text_list02)

self.Listbox03.insert («end», text_list03)

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

key1 = m. get («SName_S»)

key2 = m. get («Name_S»)

key3 = m. get («LName_S»)

text_list02 = key1 + «» + key2 + «» + key3

text_list03 = m. get («God1»)

self.Listbox01.insert («end», self. kol)

self.Listbox02.insert («end», text_list02)

self.Listbox03.insert («end», text_list03)

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_list03 = self. Znachenie_data.get ()

except:

text_list03 = self. Znachenie_data

self.Listbox01.insert («end», self. kol)

self.Listbox02.insert («end», self. vibor_data)

self.Listbox03.insert («end», text_list03)

param_for_poisk = []

param_for_poisk.append (self.parametp_poiska)

param_for_poisk.append (text_list03)

#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 = «God1»

self.vibor_data = event

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

#root.geometry («1024×768+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 (««, 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 (««, 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 (««, 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 (««, find_data)

But_Find.bind (««, 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.Listbox01.select_clear («active»)

self.Listbox02.itemconfig (self.pos, bg = «white»)

self.Listbox03.itemconfig (self.pos, bg = «white»)

def Perehod (event = None):

self.Listbox01.activate (self.pos)

self.Listbox01.select_set (self.pos)

self.Listbox02.itemconfig (self.pos, bg = «grey»)

self.Listbox03.itemconfig (self.pos, bg = «grey»)

def Hod (event = None):

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

self.pos = self. vibor

def bind_but (event = None):

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

self.Frame_Listbox.focus_set ()

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

except: pass

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

except: pass

try: self. vibor = string. atoi (self.Listbox03.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.Listbox01.curselection ()[0])

except: pass

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

except: pass

try: self. vibor = string. atoi (self.Listbox03.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.Listbox01.see (self.prev_nizz)

self.Listbox02.see (self.prev_nizz)

self.Listbox03.see (self.prev_nizz)

self.Listbox01.see (self.prev_verh)

self.Listbox02.see (self.prev_verh)

self.Listbox03.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.Listbox01.see (self.prev_nizz)

self.Listbox02.see (self.prev_nizz)

self.Listbox03.see (self.prev_nizz)

self.Listbox01.see (self.prev_verh)

self.Listbox02.see (self.prev_verh)

self.Listbox03.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)

self.Frame_Listbox.bind (««, Up)

self.Frame_Listbox.bind_all (««, analis)

self.Frame_Listbox.bind (««, Hod)

self.Frame_Listbox.bind (««, Hod)

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

#self.Frame_Listbox.focus_force ()

Label01 = Tkinter. Label (self.Frame_Listbox)

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

Label01.grid (row = 1, column = 1, sticky = «ensw»)

self.Label01 = Label01

Label02 = Tkinter. Label (self.Frame_Listbox)

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

Label02.grid (row = 1, column = 2, sticky = «ensw»)

self.Label02 = Label02

Label03 = Tkinter. Label (self.Frame_Listbox)

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

Label03.grid (row = 1, column = 3, sticky = «ensw»)

self.Label03 = Label03

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

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

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

self.Listbox01 [" takefocus" ] = 0

self.Listbox01 [" width" ] = 10

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

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

#self.Listbox01.insert («end», *date)

self.Listbox01.select_set (self.vibor)

self.Listbox01.activate (self.vibor)

self.Listbox01.bind (««, bind_but)

self.Listbox01.bind (««, alt_bind_but)

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

self.Listbox02 [" takefocus" ] = 0

self.Listbox02 [" width" ] = 32

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

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

#self.Listbox02.insert («end», *date_sl)

#self.Listbox02.itemconfig (self.vibor, background = «grey»)

self.Listbox02.bind (««, bind_but)

self.Listbox02.bind (««, alt_bind_but)

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

self.Listbox03 [" takefocus" ] = 0

self.Listbox03 [" width" ] = 40

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

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

#self.Listbox03.insert («end», *date)

#self.Listbox03.itemconfig (self.vibor, background = «grey»)

self.Listbox03.bind (««, bind_but)

self.Listbox03.bind (««, alt_bind_but)

self.Listbox01.grid (row = 2, column = 1, sticky = «ensw»)

self.Listbox02.grid (row = 2, column = 2, sticky = «ensw»)

self.Listbox03.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.Listbox01.select_set (self.vibor)

self.Listbox01.activate (self.vibor)

self.Listbox02.itemconfig (self.vibor, background = «grey»)

self.Listbox03.itemconfig (self.vibor, background = «grey»)

self.Listbox01.see (self.prev_nizz)

self.Listbox02.see (self.prev_nizz)

self.Listbox03.see (self.prev_nizz)

self.Listbox01.see (self.prev_verh)

self.Listbox02.see (self.prev_verh)

self.Listbox03.see (self.prev_verh)

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

self.root_comment

self.status = 0

self.Frame_Listbox.bind (««, from_focus_in)

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

выделение

self.Listbox01.select_clear («active»)

self.vibor = self. pos

for i in range (self.l_spis):

self.Listbox02.itemconfig (i, background = «white»)

self.Listbox03.itemconfig (i, background = «white»)

self.Frame_Listbox.bind (««, from_focus_out)

sroot_widget_create ()

def __delattr__ (self, a):

self.FRD.destroy ()

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

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

self.Listbox01.yview (*args)

self.Listbox02.yview (*args)

self.Listbox03.yview (*args)

if __name__ == «__main__» :

root = Tkinter. Tk ()

root.geometry («1024×768+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" ," God1″ ," Name_S" ," SName_S" ," LName_S" ," Nam

e_P" ," SName_P" ," LName_P" ," page" ," plac" ," pict" ," tabl" ]

#Parametry =

[" СпециаР"ьность" ," Р"СЂСѓРїРїР°" ," Оценка" ,

" Р"РѕРґ

Р· ащити" ," Р? РјСЏ" ," ФамиР"РёСЏ" ," Отчество" ," Р

?РјСЏ2″ ," ФамиР"РёСЏ2″ ," Отчество2″ ," Тема

РґРёРїР"РѕРјРЅРѕРіРѕ проэкта" ," РљРѕР"ичество

страниц" ," РљРѕР"ичество

РїР"акатов" ," РљРѕР"ичество

СЂРёСЃСѓРЅРєРѕРІ" ," РљРѕР"ичество табР"РёС†" ]

self.Param2 =

{" Spec" :u" «,» Grup" :u" «,» Mark" :" «,» God1″ :" «,» 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 («God1»))

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_Date1 = Tkinter. LabelFrame (self.FRC)

LaFR_Date1[" text" ] = u" Данные о студенте"

LaFR_Date1[" font" ] = all_font

LaFR_Date1.place (relx = 0.01, rely = 0.12, anchor = «w»)

LaFR_Date1[" width" ] = 924

LaFR_Date1[" height" ] = 85

LaFR6 = Tkinter. LabelFrame (LaFR_Date1)

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

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

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_Date2 = Tkinter. LabelFrame (self.FRC)

LaFR_Date2[" text" ] = u" Данные о научном руководителе"

LaFR_Date2[" font" ] = all_font

LaFR_Date2.place (relx = 0.01, rely = 0.25, anchor = «w»)

LaFR_Date2[" width" ] = 924

LaFR_Date2[" height" ] = 85

LaFR9 = Tkinter. LabelFrame (LaFR_Date2)

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

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

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_Date3 = Tkinter. LabelFrame (self.FRC)

LaFR_Date3[" text" ] = u" Тема дипломного проэкта"

LaFR_Date3[" font" ] = all_font

LaFR_Date3.place (relx = 0.01, rely = 0.32, anchor = «nw»)

self.ST =ScrolledText.ScrolledText (LaFR_Date3, 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_Date4 = Tkinter. LabelFrame (self.FRC)

LaFR_Date4[" text" ] = u" Данные о дипломном проэкте"

LaFR_Date4[" font" ] = all_font

LaFR_Date4.place (relx = 0.01, rely = 0.55, anchor = «w»)

LaFR_Date4[" width" ] = 924

LaFR_Date4[" height" ] = 90

LaFR12 = Tkinter. LabelFrame (LaFR_Date4)

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

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

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

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 number1 (event = None):

p_n («1»)

def number2 (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 (««, otmena)

def __delattr__ (self, a):

self.FRC.destroy ()

#print u" ok))))))))))))))))))"

if __name__ == «__main__» :

root = Tkinter. Tk ()

root.geometry («1024×768+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', 'God1':

'1993', 'tabl': '4', 'Mark': '5', 'SName_P': 'B', 'Theme': 'Bn', 'SName_S': 'B',

'Grup': 'TM-71B', 'LName_P': 'B', 'plac': '2', 'LName_S': 'B', 'Stepen':

u’u041cu0430u0433u0438u0441u0442u0440', 'page': '1'}, {'Spec':

'AAG', 'Name_S': 'D', 'Name_P': 'D', 'pict': '3', 'God1': '1993', 'tabl': '5',

'Mark': '5', 'SName_P': 'D', 'Theme': 'Dn', 'SName_S': 'D', 'Grup': 'TM-71B',

'LName_P': 'D', 'plac': '2', 'LName_S': 'D', 'Stepen':

u’u041cu0430u0433u0438u0441u0442u0440', 'page': '1'}, {'Spec':

'AAG', 'Name_S': 'Q', 'Name_P': 'Q', 'pict': '3', 'God1': '1993', 'tabl': '4',

Показать весь текст
Заполнить форму текущей работой