LINUX.ORG.RU

Python и Tix - еще вопросы по дереву


0

0

ДКорольков как-то на этом форуме любезно подсказал, как сделать дерево в Python.
код был таков:
# -*- coding: utf-8 -*-
import Tix

def get_sel(*event):
	print tree.hlist.info_selection()

def bcom(*l, **d):
	print 'bcom', l, d

def com(*l, **d):
	print 'com', l, d

Tk = Tix.Tk()
tree = Tix.Tree(Tk, browsecmd=bcom, command=com)
tree.config(title='tex')
tree.pack()
tree.hlist.add('1', text='USB', itemtype=Tix.TEXT)
tree.hlist.add('1.1', text='E14-440', itemtype=Tix.TEXT)
tree.hlist.add('1.2', text='E14-140', itemtype=Tix.TEXT)
tree.hlist.add('2', text='LTC', itemtype=Tix.TEXT)
tree.hlist.add('2.1', text='LC-227', itemtype=Tix.TEXT)
tree.hlist.add('2.1.1', text='LC-227K', itemtype=Tix.TEXT)
tree.hlist.add('2.1.2', text='LC-227C', itemtype=Tix.TEXT)
tree.hlist.add('2.2', text='LC-111', itemtype=Tix.TEXT)
tree.autosetmode()
tree.close('1')
tree.close('2')
tree.close('2.1')
Tk.bind('<d>', get_sel)
Tk.mainloop()

Пожалуйста, подскажите, если кто сталкивался КАК
1. удалить ветку из дерева
2. выделить ветку
3. снять выделение с ветки
4. привязать bind не как Tk.bind, а к элементу дерева

Спасибо
anonymous

Смотрите описание класса HList в Tix.py . Ещё можно посмотреть доки по Tix.

> удалить ветку из дерева

tree.hlist.delete_entry('2.1')

> выделить ветку

tree.hlist.selection_set('2.1', '2.1.2')

выделяет пункты с '2.1' по '2.1.2'

> снять выделение с ветки

tree.hlist.selection_clear()

после этого вызова ни один пункт не выделен.

> привязать bind не как Tk.bind, а к элементу дерева

не знаю.

Модифцированный вариант программы:

import Tix

def get_sel(*event):
	print tree.hlist.info_selection()
	tree.hlist.selection_clear()
	tree.hlist.delete_entry('1.1')

def bcom(*l, **d):
	print 'bcom', l, d

def com(*l, **d):
	print 'com', l, d

Tk = Tix.Tk()
tree = Tix.Tree(Tk, browsecmd=bcom, command=com)
tree.pack()
tree.hlist.add('1', text='USB', itemtype=Tix.TEXT)
tree.hlist.add('1.1', text='E14-440', itemtype=Tix.TEXT)
tree.hlist.add('1.2', text='E14-140', itemtype=Tix.TEXT)
tree.hlist.add('2', text='LTC', itemtype=Tix.TEXT)
tree.hlist.add('2.1', text='LC-227', itemtype=Tix.TEXT)
tree.hlist.add('2.1.1', text='LC-227K', itemtype=Tix.TEXT)
tree.hlist.add('2.1.2', text='LC-227C', itemtype=Tix.TEXT)
tree.hlist.add('2.2', text='LC-111', itemtype=Tix.TEXT)
tree.autosetmode()
#tree.close('1')
#tree.close('2')
#tree.close('2.1')
Tk.bind('<d>', get_sel)
tree.hlist.selection_set('2.1', '2.1.2')
Tk.mainloop()

DKorolkov
()
Ответ на: комментарий от DKorolkov

Большое спасибо

Для освоения документации без примеров пока квалификации недостает)))
В этом смысле классные доки к Pmw.

Еще раз спасибо, Дмитрий, за быстрые и дельные ответы.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.