wxpython插入table展示表格支持增、删、改、查的实例
时间: 2023-09-18 12:11:30 浏览: 46
以下是一个使用wxPython插入table展示表格,支持增、删、改、查的实例代码:
```python
import wx
import wx.grid as gridlib
class MyGrid(gridlib.Grid):
def __init__(self, parent):
gridlib.Grid.__init__(self, parent)
# 创建表格
self.CreateGrid(5, 5)
# 设置行和列的大小
for i in range(5):
self.SetRowSize(i, 25)
self.SetColSize(i, 125)
# 设置表格头
self.SetColLabelValue(0, "ID")
self.SetColLabelValue(1, "Name")
self.SetColLabelValue(2, "Age")
self.SetColLabelValue(3, "Gender")
self.SetColLabelValue(4, "Occupation")
# 设置表格数据
self.SetCellValue(0, 0, "001")
self.SetCellValue(0, 1, "John")
self.SetCellValue(0, 2, "25")
self.SetCellValue(0, 3, "Male")
self.SetCellValue(0, 4, "Engineer")
# 增加行
def add_row(self):
self.AppendRows(1)
# 删除行
def delete_row(self):
selected_row = self.GetSelectedRows()[0]
self.DeleteRows(pos=selected_row, numRows=1)
# 修改单元格
def update_cell(self, row, col, value):
self.SetCellValue(row, col, value)
# 查询单元格
def query_cell(self, row, col):
return self.GetCellValue(row, col)
class MyFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(500, 300))
# 创建界面
panel = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
grid = MyGrid(panel)
vbox.Add(grid, 1, wx.EXPAND)
hbox = wx.BoxSizer(wx.HORIZONTAL)
add_button = wx.Button(panel, label="Add")
add_button.Bind(wx.EVT_BUTTON, lambda event: grid.add_row())
delete_button = wx.Button(panel, label="Delete")
delete_button.Bind(wx.EVT_BUTTON, lambda event: grid.delete_row())
update_button = wx.Button(panel, label="Update")
update_button.Bind(wx.EVT_BUTTON, lambda event: grid.update_cell(0, 0, "002"))
query_button = wx.Button(panel, label="Query")
query_button.Bind(wx.EVT_BUTTON, lambda event: print(grid.query_cell(0, 0)))
hbox.Add(add_button, 1, wx.EXPAND)
hbox.Add(delete_button, 1, wx.EXPAND)
hbox.Add(update_button, 1, wx.EXPAND)
hbox.Add(query_button, 1, wx.EXPAND)
vbox.Add(hbox, 0, wx.EXPAND)
panel.SetSizer(vbox)
if __name__ == '__main__':
app = wx.App()
frame = MyFrame(None, "Table Example")
frame.Show()
app.MainLoop()
```
在这个示例中,我们创建了一个MyGrid类,继承自wxPython中的Grid类,并实现了添加行、删除行、修改单元格和查询单元格等方法。然后,我们在MyFrame类中创建了界面,并将MyGrid添加到界面中。同时,我们为界面中的按钮绑定相应的事件,以实现增、删、改、查功能。最后,我们启动了wxPython应用程序的主循环,以显示界面。