Qt之QTableView获取当前选中行

46 篇文章 3 订阅 ¥59.90 ¥99.00

在Qt中,QTableView是一个用于显示和编辑表格数据的强大控件。当用户在QTableView中选择一行或多行时,我们可能需要获取当前选中行的数据以进行进一步处理。本文将介绍如何使用Qt的信号槽机制和模型索引来实现获取QTableView当前选中行的功能。

首先,我们需要创建一个QTableView并设置其数据模型。以下是一个简单的示例,展示了如何创建一个包含10行3列数据的QTableView:

QStandardItemModel *model = new QStandardItemModel(10, 3, this);
QTableView *tableView = new QTableView
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 QListView 和 QStandardItemModel 实现 QComboBox 多选的示例代码: ```python import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QComboBox, QListView, QStandardItem, QStandardItemModel class MultiSelectComboBox(QComboBox): def __init__(self, parent=None): super(MultiSelectComboBox, self).__init__(parent) self.setView(QListView()) # 设置下拉视图为 QListView self.model = QStandardItemModel() self.setModel(self.model) # 设置模型为 QStandardItemModel self.setInsertPolicy(QComboBox.NoInsert) # 禁止用户手动输入 def addItem(self, text, checked=False): item = QStandardItem(text) item.setCheckable(True) item.setCheckState(Qt.Checked if checked else Qt.Unchecked) self.model.appendRow(item) def checkedItems(self): checked_items = [] for row in range(self.model.rowCount()): item = self.model.item(row) if item.checkState() == Qt.Checked: checked_items.append(item.text()) return checked_items if __name__ == '__main__': app = QApplication(sys.argv) combo = MultiSelectComboBox() combo.addItem("Option 1", True) combo.addItem("Option 2") combo.addItem("Option 3") combo.show() sys.exit(app.exec_()) ``` 在上述代码中,我们创建了一个名为 `MultiSelectComboBox` 的自定义多选下拉框类。在该类中,我们使用了 `QListView` 作为下拉视图,并使用 `QStandardItemModel` 作为模型。通过 `addItem` 方法,我们可以添加多个项,并指定是否默认选中。通过 `checkedItems` 方法,我们可以获取当前选中的项。运上述代码,你将看到一个具有多选功能的下拉框,并且可以选择多个选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值