DataGrid基本操作
import wx
import wx.grid
class GridFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
# Create a wxGrid object
grid = wx.grid.Grid(self, -1)
# Then we call CreateGrid to set the dimensions of the grid
# (100 rows and 10 columns in this example)
grid.CreateGrid(100, 10)
# We can set the sizes of individual rows and columns
# in pixels
grid.SetRowSize(0, 60)
grid.SetColSize(0, 120)
# And set grid cell contents as strings
grid.SetCellValue(0, 0, 'wxGrid is good')
# We can specify that some cells are read.only
grid.SetCellValue(0, 3, 'This is read.only')
grid.SetReadOnly(0, 3)
# Colours can be specified for grid cell contents
grid.SetCellValue(3, 3, 'green on grey')
grid.SetCellTextColour(3, 3, wx.GREEN)
grid.SetCellBackgroundColour(3, 3, wx.LIGHT_GREY)
# We can specify the some cells will store numeric
# values rather than strings. Here we set grid column 5
# to hold floating point values displayed with width of 6
# and precision of 2
grid.SetColFormatFloat(5, 6, 2)
grid.SetCellValue(0, 6, '3.1415')
self.Show()
if __name__ == '__main__':
app = wx.App(0)
frame = GridFrame(None)
app.MainLoop()

資料庫與DataGrid
圖例如下

表格格式設定
import wx.grid as grid class CommodityInfoGridTable(grid.GridTableBase): def __init__(self, datas): grid.GridTableBase.__init__(self) self.datas = datas self.colLabels = [u'ID',u'商品編號', u'商品規格', u'商品顏色', u'定型版號',u'存放櫥位',u'商品售價'] self.odd = grid.GridCellAttr() self.odd.SetReadOnly(True) self.odd.SetBackgroundColour('#f0f0f0') self.even = grid.GridCellAttr() self.even.SetReadOnly(True) self.even.SetBackgroundColour('#e0e0e0') pass def GetAttr(self, row, col, kind): attr = [self.even, self.odd][row % 2] attr.IncRef() return attr def GetNumberRows(self): return len(self.datas) def GetNumberCols(self): return len(self.colLabels) def GetColLabelValue(self, col): return self.colLabels[col] def GetRowLabelValue(self, row): return str(row) def GetValue(self, row, col): return self.datas[row][col]
資料填入
def RefreshGrid(self): self.grid.ClearGrid() conn = mysql.connect(host=G.dbHost, user=G.dbAccount, password=G.dbPassword, database=G.dbName) cursor = conn.cursor() cursor.execute("select * from 廠商資料") vendorList=[list(i) for i in cursor.fetchall()] cursor.close() conn.close() self.grid.SetTable(CommodityInfoGridTable(vendorList), True) self.grid.SetColSize(0, 0) ''' self.grid.SetColSize(0, 0) self.grid.SetColSize(1, 200) self.grid.SetColSize(2, 200) self.grid.SetColSize(3, 220) ''' self.Layout()
todo
