# При поиске трехсимвольного ключевого слова в Tkinter Treeview выполняется поиск потомков детей #children, но уровень потомков не максимизируется, однако, когда вручную #maximized дети выделяются нормально. Кроме того, искомое ключевое слово не # прокручивает окно. Есть ли способ сделать это? Пожалуйста, помогите.
Search when scrolled manually and maximized the level
def search(self, item=''):
search_pattern = str(self.searchText.get())
if len(search_pattern) < 3:
return
children = self.tree.get_children(item)
for child in children:
value_list = self.tree.item(child)["values"]
#print(value_list)
for i in range(len(value_list)):
if type(value_list[0]) != int:
if value_list[0].isprintable():
#print(value_list[i],'printable')
#if value_list[0].lower().startswith(search_pattern.lower()):
if value_list[0].lower().find(search_pattern.lower()) != -1:
self.tree.selection_set(child)
else:
res = search(self,item=child)
search(self,item=child)
def search_box(root):
root.searchText = StringVar()
root.search_input = ttk.Entry(root, textvariable = root.searchText, justify = LEFT)
root.search_input.grid(column = 0, row = 0, padx=60, pady=5, sticky='NW', rowspan=2)
print(root.search_input)
print(root.searchText)
root.searchText.trace_variable("w",lambda x,y,z: search(root)) #
Callback if stringvar is updated
root.bind("<Return>", lambda x: hideEntry(root,x))
root.bind("<Escape>", lambda x: hideEntry(root,x))