gpt4 book ai didi

python - wxPython UltimateListCtrl 以编程方式检查(勾选)列表项

转载 作者:太空宇宙 更新时间:2023-11-03 18:19:03 30 4
gpt4 key购买 nike

我正在使用 UltimateListCtrlLC_LIST 样式。我的列表中的所有项目都带有复选框。填充列表后,我尝试根据从数据库收到的数据动态检查(勾选)一些项目。但在填充列表后,我无法检查(勾选)列表中的任何项目。

这里我粘贴示例代码来描述该问题。

更多信息:我在 Windows XP 平台上使用 Python 2.7 和 wxPython 2.8。

import random
import wx
import wx.lib.agw.ultimatelistctrl as ULC

class MyFrame(wx.Frame):

def __init__(self):
wx.Frame.__init__(self, parent=None, title="Tick List Item Checkbox Programatically")
self.panel = wx.Panel(parent=self)
self.sizer = wx.BoxSizer(orient=wx.VERTICAL)
self.panel.SetSizer(self.sizer)

self.list = ULC.UltimateListCtrl(parent=self.panel, agwStyle=wx.LC_LIST)
self.sizer.Add(item=self.list, proportion=1, flag=wx.EXPAND)

for i in range(50):
label = "Item %02d " % (i + 1) + "random " * random.randint(1, 3)
self.list.InsertStringItem(index=i, label=label, it_kind=1)

self.checkItems()

self.Show()


def checkItems(self):
idx = [1, 3, 6, 7, 9, 11, 15, 17, 20]
for i in idx:
# self.list.SetItemState(item=i, state=ULC.ULC_STATE_SELECTED, stateMask=ULC.ULC_MASK_CHECK)
# self.list.SetItemState(item=i, state=ULC.ULC_STATE_SELECTED, stateMask=ULC.ULC_MASK_STATE)
self.list.SetItemState(item=i, state=ULC.ULC_STATE_SELECTED, stateMask=ULC.ULC_STATE_SELECTED)


if __name__ == '__main__':
app = wx.App()
frame = MyFrame()
app.MainLoop()

如何检查(勾选)列表项?

最佳答案

您需要从列表中获取该项目,检查它,然后将其保存回列表中:

def checkItems(self):
idx = [1, 3, 6, 7, 9, 11, 15, 17, 20]
for i in idx:
temp = self.list.GetItem(i, 0)
temp.Check(True)
self.list.SetItem(temp)

关于python - wxPython UltimateListCtrl 以编程方式检查(勾选)列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24485276/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com