wxPython — изменить форматирование и внешний вид объекта сетки

Я хотел бы знать, можно ли изменить форматирование объекта сетки в wxPython.

В частности, я хотел бы знать, как изменить цвет фона, тип шрифта, цвет шрифта и цвет границы меток заголовков и меток строк.

Вот простая сетка, форматирование которой я хотел бы изменить:

 import wx
 import wx.grid as gridlib

 class MyForm(wx.Frame):

    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, parent=None, title="A Simple Grid")
        panel = wx.Panel(self)

        myGrid = gridlib.Grid(panel)
        myGrid.CreateGrid(12, 8)

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

if __name__ == "__main__":
    app = wx.PySimpleApp()
    frame = MyForm().Show()
    app.MainLoop()

Заранее спасибо!


person rich    schedule 16.10.2018    source источник


Ответы (1)


Во-первых, wx.PySimpleApp уже давно объявлен устаревшим, и вам действительно не следует его больше использовать. Вместо этого используйте wx.App.

Что касается вашего вопроса, вам нужно будет использовать wx.lib.mixins.gridlabelrenderer. В демо есть пример под названием GridLabelRenderer, который вы можете использовать. В основном вы создаете подкласс GridLabelRenderer и модифицируете его метод Draw. Затем вы вызываете метод SetColLabelRenderer каждого столбца и настраиваете его на использование своего пользовательского средства визуализации.

person Mike Driscoll    schedule 16.10.2018