gpt4 book ai didi

python - wxpython:从 wx.lib.sheet.CSheet 对象更新字典或其他适当的数据类型

转载 作者:太空宇宙 更新时间:2023-11-03 15:29:47 25 4
gpt4 key购买 nike

如果我有一个包含三个电子表格小部件的笔记本,那么更改电子表格更新字典(或者可能是一个 sqlite 文件?)的最佳方法是什么?是否所有 wx 网格对象都带有与 SetNumberRows 和 SetNumberCols 相关的内置字典?基本上,我正在寻找有关如何使用电子表格小部件中的用户输入数据的指导,如改编自 python.org 上的教程的示例所示:

class ExSheet(wx.lib.sheet.CSheet):
def __init__(self, parent):
sheet.CSheet.__init__(self, parent)
self.SetLabelBackgroundColour('#CCFF66')
self.SetNumberRows(50)
self.SetNumberCols(50)

class Notebook(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title)
nb = wx.Notebook(self, -1, style=wx.NB_BOTTOM)
self.sheet1 = ExSheet(nb)
self.sheet2 = ExSheet(nb)
self.sheet3 = ExSheet(nb)
nb.AddPage(self.sheet1, "Sheet1")
nb.AddPage(self.sheet2, "Sheet2")
nb.AddPage(self.sheet3, "Sheet3")
self.sheet1.SetFocus()
self.StatusBar()

最佳答案

使用 wxGridwxGridTableBase相反

这是一个简单的例子:

import wx, wx.grid

class GridData(wx.grid.PyGridTableBase):
_cols = "a b c".split()
_data = [
"1 2 3".split(),
"4 5 6".split(),
"7 8 9".split()
]

def GetColLabelValue(self, col):
return self._cols[col]

def GetNumberRows(self):
return len(self._data)

def GetNumberCols(self):
return len(self._cols)

def GetValue(self, row, col):
return self._data[row][col]

def SetValue(self, row, col, val):
self._data[row][col] = val

class Test(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
self.data = GridData()
grid = wx.grid.Grid(self)
grid.SetTable(self.data)
self.Bind(wx.EVT_CLOSE, self.OnClose)
self.Show()

def OnClose(self, event):
print self.data._data
event.Skip()

app = wx.PySimpleApp()
app.TopWindow = Test()
app.MainLoop()

关于python - wxpython:从 wx.lib.sheet.CSheet 对象更新字典或其他适当的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/328003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com