在python中使用grid.SetCellAlignment
我在wxpython中有一个网格,我想在单元格的中心显示所有文本 据我所知,这是可行的在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
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)