Вопрос

Итак, у меня есть wxpython listctrl, который содержит ряды данных. Как я могу сделать событие, которое вызывает функцию с содержимым строк, когда один из строк, если нажимает?

Это было полезно?

Решение

Вы можете использовать Bind Функция для привязки метода с событием. Например,

import wx

class MainWidget(wx.Frame):

    def __init__(self, parent, title):
        super(MainWidget, self).__init__(parent, title=title)

        self.list = wx.ListCtrl(parent=self)
        for i,j in enumerate('abcdef'):
            self.list.InsertStringItem(i,j)
        self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnClick, self.list)

        self.Layout()

    def OnClick(self, event):
        print event.GetText()



if __name__ == '__main__':
    app = wx.App(redirect=False)
    frame = MainWidget(None, "ListCtrl Test")
    frame.Show(True)
    app.MainLoop()

Это приложение будет распечатать элемент в списке, который активируется (нажав Enter или дважды щелкнув). Если вы просто хотите поймать одно событие щелчка, вы можете использовать wx.EVT_LIST_ITEM_SELECTED.

Важным моментом является то, что Bind Функция указывает метод, который будет вызван, когда происходит конкретное событие. См. Раздел в руководстве по началу работы WXPYTHON Обработка событий. Анкет Также см. Документы на ListCtrl Для событий, которые использует виджет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top