4

我已经看了几个小时的 wx 演示,只是无法理解这一点。

我需要从我的数据库中提取信息并将其列和值存储在一个网格中,仅供查看(截至目前)

有人可以为我制作一个示例脚本,说明如何做到这一点,这样我就可以用我自己的数据来实现它。我需要的网格是固定位置的,可以放在面板内(wx.notebook 的一页)我知道如何做那部分,但是如何在面板内获取网格并填充它让我感到困惑。

附加信息:我的数据库保存客户信息(姓名、电话、电子邮件)

4

2 回答 2

5

如果您正在查看使用 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 数据库数据的其他更简单的示例,您可以检查thisthis

使用 wx.grid.Grid 填充单元格的方法是:

mygrid.SetCellValue(row, col, databasevalue4rowcol)
于 2012-06-23T19:35:02.320 回答
0
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]))
于 2021-07-23T21:25:40.407 回答