Я использую список wxPython в Windows, чтобы получить выбор от пользователя, и я хотел бы, чтобы они могли выбрать элемент с помощью клавиши ENTER, как если бы они дважды щелкнули. Я знаю, как это сделать на C или C++, используя API Windows напрямую, но не могу найти, как это сделать, используя wxPython. Кто-нибудь знает как? Кажется очевидным, что нужно делать.Интерфейс клавиатуры для списка wxPython
2
A
ответ
1
Возможно, мне не хватает какого-либо нюанса, информации было мало, но похоже, что вы могли бы это сделать, поймав событие keydown, подходящее для ввода, а затем вызвав функцию on_doubleclick. Если есть неявная обработка с двойным щелчком, вам должно быть хорошо идти.
1
Простой ответ заключается в том, что wx.ListBox не поддерживает это. Попробуйте вместо этого использовать один столбец wx.ListCtrl (в режиме отчета).
1
Это работает для меня, ключ к Bind EVT_KEY_UP, а не EVT_KEY_DOWN:
import wx
class myListBoxDemo(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent=parent, title="testing ListBox right-click")
self.panel = wx.Panel(self, -1)
sizer = wx.BoxSizer(wx.VERTICAL)
self.myListBox = wx.ListBox(self.panel,style=wx.LB_HSCROLL|wx.LB_SINGLE)
self.myListBox.Bind(wx.EVT_KEY_UP, self.OnKeyDownSelectedList)
self.myListBox.Append('item 1')
self.myListBox.Append('item 2')
self.myListBox.Append('item 3')
self.myListBox.Append('item 4')
sizer.AddF(self.myListBox, wx.SizerFlags(1).Expand())
self.panel.SetSizer(sizer)
def OnKeyDownSelectedList(self, event):
print "KeyCode: %d" % event.GetKeyCode()
print "ListBox Item Index: %d" % event.GetEventObject().GetSelection()
import wx.lib.mixins.inspection as wit
class AppWInspection(wx.App, wit.InspectionMixin):
def OnInit(self):
self.Init() # enable Inspection tool
return True
if __name__ == "__main__":
app = AppWInspection()
f = myListBoxDemo(None)
f.Show()
app.MainLoop()
Смежные вопросы
- 1. Открытие экранной клавиатуры wxpython
- 2. Интерфейс для изменяемого списка
- 3. wxpython захват событий клавиатуры в wx.Frame
- 4. пользовательский интерфейс ввода функции клавиатуры
- 5. ps/2 интерфейс клавиатуры VHDL
- 6. Navigate интерфейс с помощью клавиатуры
- 7. Справка: Графический интерфейс реального времени в wxpython
- 8. wxPython: GridBagSizer - расширенный объект списка
- 9. пользовательский интерфейс для выпадающего списка
- 10. Интерфейс atmega32, принимающий ввод с клавиатуры с клавиатуры
- 11. MVC framework для wxPython
- 12. Интерфейс клавиатуры малины Pi (Key Remapping?)
- 13. LoadKeyboardLayout не изменяет пользовательский интерфейс экранной клавиатуры
- 14. Wxpython gui для планировщика задач
- 15. интерфейс списка в C++
- 16. Списка - Какой интерфейс лучше
- 17. Сканирование 4x4 Интерфейс клавиатуры с TM4C123G
- 18. Как использовать интерфейс клавиатуры с помощью Selenium?
- 19. Почему пользовательский интерфейс мерцает при отклонении клавиатуры ...?
- 20. wxpython - управление списком списка вертикально не горизонтально
- 21. Диалоги wxPython: клавиша клавиатуры «Enter» не будет «ok» диалоговое окно
- 22. Возможно ли получить интерфейс списка для SortedMap.values ()?
- 23. Пользовательский интерфейс Google Now для списка
- 24. Интерфейс для управления порядком элементов списка
- 25. Пользовательский интерфейс для переупорядочения элементов списка
- 26. Интерфейс списка - Java
- 27. Разделимый веб-интерфейс списка
- 28. Открытие нескольких окон из списка в WxPython
- 29. Назначение списка меток для радиообмена с использованием wxpython
- 30. wxpython: Как создать содержимое wxChoice из списка?
Вот что я пытался, но, кажется, я не ловить события клавиатуры, направленные на ListBox. – 2010-12-15 15:35:13
Вы привязываете событие к нужному объекту? Вопрос в том, что вы делаете `self.Bind (...)`, тогда список может есть ключ, прежде чем контейнер получит его. Если у вас есть ссылка в `self.listbox`, то` self.listbox.Bind (...) `может быть решением. – 2010-12-15 15:40:08