Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用grid.SetCellAlignment_Python_Wxpython - Fatal编程技术网

在python中使用grid.SetCellAlignment

在python中使用grid.SetCellAlignment,python,wxpython,Python,Wxpython,我在wxpython中有一个网格,我想在单元格的中心显示所有文本 据我所知,这是可行的 grid.SetCellAlignment(0,0,wx.ALIGN\u center,wx.ALIGN\u center) 然而,正如您所看到的,这是单元格的局部属性。如何对整个网格执行此操作?尝试使用类来对齐文本,而不是使用SetCellAlignment。您应该从wx.grid.grid创建一个继承的类,并添加一个名为SetGridAlignment的方法。如下所示: import wx import

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

据我所知,这是可行的

grid.SetCellAlignment(0,0,wx.ALIGN\u center,wx.ALIGN\u center)


然而,正如您所看到的,这是单元格的局部属性。如何对整个网格执行此操作?

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

您应该从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()

虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。
grid.SetDefaultCellAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)