wxPython在listcrl中设置项并获取选定项

2024-05-19 11:03:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码来创建一个名为“browser list”的ListCtrl。在

self.browserList=wx.ListCtrl(panel, pos=(20,150), size=(250,100), style.wx.LC_REPORT|wx.BORDER_SUNKEN)
self.browserList.InsertColumn(0, '')
self.browserList.InsertColumn(1, 'Browser: ')
self.browserList.SetColumnWidth(0, 50)
self.browserList.SetColumnWidth(1, 200)

我想添加以下内容以将这些字符串添加为项,但它将其放在第一列中,而我需要将其放在第二列中:

^{pr2}$

另外,如何获取所选项目并将其存储在变量中?在


Tags: 代码posselfreportbrowsersizestylelist
1条回答
网友
1楼 · 发布于 2024-05-19 11:03:30

比那更复杂一点。插入该项,然后使用SetStringItem将数据插入到其他列中。下面是一个快速而肮脏的例子:

import wx

########################################################################
class MyForm(wx.Frame):

    #                                   
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "List Control Tutorial")

        # Add a panel so it looks the correct on all platforms
        panel = wx.Panel(self, wx.ID_ANY)
        self.index = 0

        self.list_ctrl = wx.ListCtrl(panel, size=(-1,100),
                                     style=wx.LC_REPORT
                                     |wx.BORDER_SUNKEN
                                     )
        self.list_ctrl.InsertColumn(0, '', width=50)
        self.list_ctrl.InsertColumn(1, 'Browser', width=200)

        # add some browsers
        self.list_ctrl.InsertStringItem(0, "foo")
        self.list_ctrl.SetStringItem(0, 1, "Google Chrome")
        self.list_ctrl.InsertStringItem(1, "bar")
        self.list_ctrl.SetStringItem(1, 1, "Mozilla Firefox")

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.list_ctrl, 0, wx.ALL|wx.EXPAND, 5)
        panel.SetSizer(sizer)

#                                   
# Run the program
if __name__ == "__main__":
    app = wx.App(False)
    frame = MyForm()
    frame.Show()
    app.MainLoop()

我个人更喜欢使用ObjectListView而不是ListCtrl。我只是觉得效果更好。但您可能会发现我以前的提示和技巧教程很有用:

如果您决定切换,那么您可能会发现这一点也很有用:

相关问题 更多 >

    热门问题