Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » wx.TreeCtrl не могу снять выделение с элементов... [RSS Feed]

#1 Авг. 20, 2008 07:18:06

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.TreeCtrl не могу снять выделение с элементов...

Всем привет.
у wx.TreeCtrl есть метод UnselectAll. вообще он снимает выделение со всех элементов, но первый элемент все равно остается выделенным…
вот мой код

# -*- coding: cp1251 -*-
import wx

class TreeGroup(wx.TreeCtrl):
def __init__(self, parent):
wx.TreeCtrl.__init__(self, parent, style=wx.TR_DEFAULT_STYLE|wx.TR_HIDE_ROOT|wx.TR_MULTIPLE)
root_id = self.AddRoot('root')
self.AppendItem(root_id, 'grup1')
self.AppendItem(root_id, 'grup2')
self.AppendItem(root_id, 'grup3')
self.UnselectAll()

class MultiChoiceGroup(wx.Dialog):
""" диалог выбора групп для фильтрации списка пользователей
"""
def __init__(self):
wx.Dialog.__init__(self, None, title='Выбор групп', size=(300, 400), style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
# Создать панель и дерево
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(wx.StaticText(self, label='Отметьте группы по которым установить фильтр'), flag=wx.ALL, border=10)
################################################################
self.tree = TreeGroup(self)
################################################################
sizer.Add(self.tree, proportion=1, flag=wx.EXPAND|wx.ALL, border=10)
self.SetSizer(sizer)
hsizer = wx.BoxSizer(wx.HORIZONTAL)
self.but_ok = wx.Button(self, label='Ok')
self.but_cancel = wx.Button(self, label='Cancel')
hsizer.Add(self.but_ok, flag=wx.RIGHT, border=5)
hsizer.Add(self.but_cancel)
sizer.Add(hsizer, flag=wx.ALIGN_RIGHT|wx.RIGHT|wx.BOTTOM, border=10)
#
self.but_ok.Bind(wx.EVT_BUTTON, self.OnOk)
self.but_cancel.Bind(wx.EVT_BUTTON, self.OnCancel)

acceltbl = wx.AcceleratorTable([
(wx.ACCEL_NORMAL, wx.WXK_RETURN, self.but_ok.GetId()),
(wx.ACCEL_NORMAL, wx.WXK_ESCAPE, self.but_cancel.GetId()),
])
self.SetAcceleratorTable(acceltbl)

def OnOk(self, evt):
self.EndModal(wx.ID_OK)
def OnCancel(self, evt):
self.EndModal(wx.ID_CANCEL)

class App(wx.App):
def __init__(self):
wx.App.__init__(self, True, 'log.txt')
dlg = MultiChoiceGroup()
dlg.ShowModal()
dlg.Destroy()

if __name__ == "__main__":
app = App()
app.MainLoop()
Можно ли снять выделение и с первого элемента тоже? И как это сделать?
И еще один вопрос, но не столь важный:
В AcceleratorTable просписана клавиша ESCAPE, но диалог на нее не реагирует, с чем это связано и как можно исправить? :)

P.S. тег
 скрипт почему то не принял..



Офлайн

  • Начало
  • » GUI
  • » wx.TreeCtrl не могу снять выделение с элементов...[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version