关于表格通过 Class点击事件获取行数据不正确的分析

在获取表格数据时,尽量采用唯一标识的Id来获取;

如果使用Class来获取行数据,则需使用$(this).attr(" ")来获取属性值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 PyQt 的 `QAbstractItemModel` 类中,可以通过 `index()` 方法获取到某个单元格的索引,在 `data()` 方法中可以根据这个索引获取到该单元格的数据。因此,可以通过遍历某一的所有列,获取数据。 在 `QAbstractItemModel` 的子类中,可以重写 `setData()` 方法来捕获数据变更信号 `dataChanged`,并在该方法中实现获取数据的逻辑。具体的实现方式如下: ```python class TableModel(QAbstractTableModel): def setData(self, index, value, role): if role == Qt.EditRole: # 获取用户编辑后的数据 row = index.row() column = index.column() data = self._data[row][column] # 进相关的数据处理 ... # 发送数据变更信号 self.dataChanged.emit(index, index) # 获取数据 row_data = [] for col in range(self.columnCount()): index = self.index(row, col) data = self.data(index, Qt.DisplayRole) row_data.append(data) print(row_data) return True return False ``` 在上述代码中,我们首先获取到用户编辑后的数据,然后获取数据,最后打印出该数据。需要注意的是,在 `setData()` 方法中,我们需要先调用父类的 `setData()` 方法,否则数据变更信号 `dataChanged` 不会被正确地发射。 同时,也可以通过 `index()` 方法获取某一的所有索引,然后在 `data()` 方法中遍历这些索引,获取数据。具体实现方式如下: ```python class TableModel(QAbstractTableModel): def setData(self, index, value, role): if role == Qt.EditRole: # 获取用户编辑后的数据 row = index.row() column = index.column() data = self._data[row][column] # 进相关的数据处理 ... # 发送数据变更信号 self.dataChanged.emit(index, index) # 获取数据 indexes = [self.index(row, col) for col in range(self.columnCount())] row_data = [self.data(idx, Qt.DisplayRole) for idx in indexes] print(row_data) return True return False ``` 以上就是在 PyQt 中获取数据的实现方式。需要注意的是,如果表格中包含大量数据,这种遍历的方式可能会影响性能,因此可以考虑使用其他更高效的实现方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值