2015-07-27 3 views
0

У меня есть сетка в Wxpython, я повторяю строки, и я хочу, чтобы эти строки были квалифицированы для того, чтобы условие было окрашено в RED.SetTextColour не работает, пока SetBackgroundColour работает

Когда я делаю:

attr = gridlib.GridCellAttr() 
attr.SetBackgroundColour('#FF0000') 
grid.SetRowAttr(i, attr) 

это работает и строка получает красный фон ... но если я делаю:

attr = gridlib.GridCellAttr() 
attr.SetTextColour('#FF0000') 
grid.SetRowAttr(i, attr) 

он не работает. ничего не случилось.

i - это индекс строки.

Я хочу, чтобы текст был не красным, а не фоном.

Почему это не работает?

ответ

0

Следующий минимальный пример работает для меня, чтобы установить цвет текста в строке на красный,

import wx 
import wx.grid as gridlib 

class MyForm(wx.Frame): 

    def __init__(self): 

     wx.Frame.__init__(self, parent=None, title="Grid") 
     panel = wx.Panel(self) 

     self.grid = gridlib.Grid(panel) 
     self.grid.CreateGrid(3, 3) 

     sizer = wx.BoxSizer(wx.VERTICAL) 
     sizer.Add(self.grid, 1, wx.EXPAND) 
     panel.SetSizer(sizer) 

    def set_row_colour(self, row): 
     attr = gridlib.GridCellAttr() 
     attr.SetTextColour('#FF0000') 
     self.grid.SetRowAttr(row, attr) 


if __name__ == "__main__": 
    app = wx.App(False) 
    form = MyForm() 
    form.set_row_colour(2) 
    frame = form.Show() 
    app.MainLoop() 

Если он не работает для вас, может быть разница в Wx (я использую 2.8.12.1)?

+0

Это работает ... но я не вижу, что такое различие между этим кодом и моим – avi

+0

Хм, не уверен. Может быть, ошибка в выборе строки 'i'? Вы импортируете wx или wxPython (не уверены, есть ли разница) ... Может быть конфликт с чем-то другим (например, глобальное свойство, устанавливающее цвет текста обратно на черный)? –

+0

'i' - просто номер, он выполняет итерацию от 0 до максимального количества строк в сетке. 'i' работает правильно, я вижу его в отпечатках для консоли. Дело в том, что 'SetBackgroundColour' отлично работает ... но' SetTextColour' не – avi

Смежные вопросы