wxpython ListCtrl无法更改所选项目

2024-09-30 01:28:16 发布

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

作为标题,我不明白为什么我不能改变所选项目的背景色。这是我的密码。。。你知道吗

self.listaFatture = wx.ListCtrl(self, size=(frame.GetSize().Width - 30, frame.GetSize().Height - 250), style=wx.LC_REPORT)
.....

self.listaFatture.Bind(wx.EVT_LIST_ITEM_SELECTED, self.SelezionaFatturaColore)

.....

def SelezionaFatturaColore(self,event):
    print('Selezionato')
    index= event.GetIndex()
    self.listaFatture.SetItemBackgroundColour(index, 'gray')
    self.listaFatture.SetItemTextColour(index, 'black')

事件已启动,但颜色不变

提前感谢所有帮助我的人


Tags: self目的event密码标题sizeindex选项
1条回答
网友
1楼 · 发布于 2024-09-30 01:28:16

我找到了一个解决办法,我不知道是不是一个错误。你知道吗

我用-1设置了一个变量,然后,当我选择一行时,我记得索引,我在设置颜色后取消选择它。。。你知道吗

更简单的阅读代码。。。你知道吗

self.lastSelected = -1
....
self.listaFatture.Bind(wx.EVT_LIST_ITEM_SELECTED, self.SelezionaFatturaColore)
....
def SelezionaFatturaColore(self,event):
    print('Selezionato')
    index= event.GetIndex()
    if self.lastSelected > -1:
        if self.lastSelected % 2 == 0:
           self.listaFatture.SetItemBackgroundColour(self.lastSelected, wx.Colour(255,255,255,255))
        else:
            self.listaFatture.SetItemBackgroundColour(self.lastSelected, wx.Colour(152,245,255,255))

    self.listaFatture.SetItemState(index, 0, wx.LIST_STATE_SELECTED)

    self.listaFatture.SetItemBackgroundColour(index, wx.Colour(128,128,128,255))
    self.listaFatture.SetItemTextColour(index, wx.Colour(0,0,0,255))
    self.lastSelected = index

相关问题 更多 >

    热门问题