如何用值填充QListView并显示数据?

2024-10-05 14:30:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个包含QListView的表单。它是用以下代码从数据库中填充的:

model = QStandardItemModel(self.listUser)
for row in self.SELECT_USERS_ACCOUNTS():
    item = QStandardItem(str(row[1]))
    model.appendRow(item)
self.listUser.setModel(model)

我的QListView名为listUser,SELECT_USERS_ACCOUNTS()函数返回由SELECT id创建的数据,name from table_user,我也需要存储行[0](表中的id列user),因为当用户在QListView中单击某个项时。我想截取这个身份证。谢谢。在


Tags: 代码selfid数据库表单modelitemselect
1条回答
网友
1楼 · 发布于 2024-10-05 14:30:23

在QStandardItem中,不同角色的数据可以由setData(data, role)存储。 存储的数据由data(role)返回。在

Roles>;=256(0x100)是用户角色,请参见documentation

所以你可以通过

item.setData(row[0],256)

然后问它

^{pr2}$

编辑日期:2015年3月31日:

for row in self.SELECT_USERS_ACCOUNTS():
    item = QStandardItem(str(row[1]))
    # add userData to item
    item.setData(row[0],256)
    # item.setData(row[2], 257) and so on if there are further columns in row
    model.appendRow(item)

self.listUser.setModel(model)
self.listUser.clicked.connect(self.getUserData)

def getUserData(self,index):
    item = self.model().item(index.row(),index.column())
    iId = item.data(256)
    # xyz = item.data(257) for further columns
    print(iId) # or do anything else

相关问题 更多 >