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

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

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