我已经看了几个小时的 wx 演示,只是无法理解这一点。
我需要从我的数据库中提取信息并将其列和值存储在一个网格中,仅供查看(截至目前)
有人可以为我制作一个示例脚本,说明如何做到这一点,这样我就可以用我自己的数据来实现它。我需要的网格是固定位置的,可以放在面板内(wx.notebook 的一页)我知道如何做那部分,但是如何在面板内获取网格并填充它让我感到困惑。
附加信息:我的数据库保存客户信息(姓名、电话、电子邮件)
如果您正在查看使用 wx.grid.PyGridTableBase 和相关的网格演示,那么您是对的:这似乎是一个非常神秘的代码。但是,关键方法是:
def GetValue(self, row, col):
return 'something'
这个想法是,如果你有你的数据
self.data = [[1,2,3,4],
[5,6,7,8],
........
]
那么这会将您的数据放在相应的单元格中:
def GetValue(self, row, col):
return str( self.data[row][column] )
(self.data
代表您的数据库)
对于使用 wx.grid.Grid 静态数据或 MySQL 数据库数据的其他更简单的示例,您可以检查this和this
使用 wx.grid.Grid 填充单元格的方法是:
mygrid.SetCellValue(row, col, databasevalue4rowcol)
import itertools as it
import pandas as pd
df = pd.DataFrame({'A': [1.1, 2.7, 5.3], 'B': [2, 10, 9], 'C': [3.3, 5.4, 1.5], 'D': [4, 7, 15]},
index = ['a1', 'a2', 'a3'])
for row, col in it.product(range(len(df)), range(len(df.columns))):
print ("mygrid.SetCellValue({0}, {1}, {2})".format(row, col, df.iat[row, col])) # **
# Results :
# mygrid.SetCellValue(0, 0, 1.1)
# mygrid.SetCellValue(0, 1, 2)
# ...
# mygrid.SetCellValue(2, 3, 15)
** 出于实际原因,我在上面的代码中使用 print(...)
在实际代码中,而不是 print(...) 使用以下内容:
mygrid.SetCellValue(row, col, str(df.iat[row, col]))