在python中使用grid.SetCellAlignment

时间:2016-02-22 06:23:41

标签: python wxpython

我在wxpython中有一个网格,我想在单元格的中心显示所有文本。

据我所知,这是可行的

if ( year % Month.QUADRENNIAL == 0 || year % Month.QUATERCENTENNIAL == 0 ) leapYear = true;

但是你可以看到这是细胞的局部属性。我怎么能为整个网格做到这一点?

3 个答案:

答案 0 :(得分:0)

尝试使用StaticText类来对齐文本,而不是使用SetCellAlignment。

答案 1 :(得分:0)

您应该从wx.grid.Grid创建一个继承的类,并添加一个名为SetGridAlignment的方法。如下所示:

import wx
import wx.grid as wxgrid

class Grid(wxgrid.Grid):
    def __init__(self,*args,**kwargs):
        wxgrid.Grid.__init__(self,*args,**kwargs)

    def SetGridAlignment(self,halign,valign):
        """
        This method aligns all cells of the grid.

        halign :   Horizontal alignment
        valign :   Vertical alignment
        """
        nrows=self.GetNumberRows()
        ncols=self.GetNumberCols()
        for ii in range(nrows):
            for jj in range(ncols):
                self.SetCellAlignment(ii,jj,halign,valign)


if __name__=='__main__':
    app = wx.App()
    frame = wx.Frame(None, -1, u"Simple Grid", size=(300,200))
    gr = Grid(frame, -1)
    gr.CreateGrid(10,2)
    gr.SetGridAlignment(wx.ALIGN_CENTRE,wx.ALIGN_CENTRE)
    frame.Show()
    app.MainLoop()

答案 2 :(得分:0)

grid.SetDefaultCellAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)