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