簡體   English   中英

wxpython ListCtrl 無法更改所選項目的顏色

[英]wxpython ListCtrl can't change selected item colour

作為標題,我不明白為什么我不能更改所選項目的背景顏色。 這里我的代碼...

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')

事件被觸發但顏色沒有改變

預先感謝所有試圖幫助我的人

我找到了一個解決方法,我不知道是不是一個錯誤。

我用 -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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM