wxgrid突出显示行

1 投票
1 回答
1776 浏览
提问于 2025-04-17 18:59

我在找一些解决办法,但没找到合适的。

我想在一个叫 wx.Grid 的表格中,当某个日期过了的时候,把那一行高亮显示出来。

有没有什么函数可以做到这一点呢?

<i>        
def load_grid_fare (self, fares):
   for i, j, k in fares :
      self.grid_fare.SetCellValue(count_rows,0,str(i.fare_id))
        self.grid_fare.SetCellValue(count_rows,1,str(j.service_name).encode('utf8'))
        self.grid_fare.SetCellValue(count_rows,2,str(k.vehicle_type_name).encode('utf8'))
        self.grid_fare.SetCellValue(count_rows,3,str(i.fare_cash))
        self.grid_fare.SetCellValue(count_rows,4,str(i.fare_startdate.strftime("%d/%m/%Y")))
        self.grid_fare.SetCellValue(count_rows,5,str(i.fare_enddate.strftime("%d/%m/%Y")))
        count_rows += 1

1 个回答

1

你需要去看看wxPython的演示,这个演示可以从wxPython的网站上下载。在这个演示里,有几个例子展示了如何改变单元格、行或列的颜色。在演示中,它显示你需要创建一个GridCellAttr()对象,然后做以下操作:

attr = wx.grid.Grid.GridCellAttr()
attr.SetBackgroundColour(wx.RED)
self.SetRowAttr(5, attr)

这里的“self”指的是wx.grid.Grid。上面的代码会把第六行的背景颜色设置为红色。

撰写回答