首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取PyQT5/ Pyside2中选定行的索引

在PyQt5/PySide2中,要获取选定行的索引,可以使用QTableView或QTableWidget的selectedIndexes()方法。该方法返回一个列表,包含了所有选定单元格的索引。

以下是一个示例代码:

代码语言:txt
复制
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView, QAbstractItemView, QHeaderView, QVBoxLayout, QWidget
from PyQt5.QtCore import Qt

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.table_view = QTableView()
        self.table_view.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.table_view.setSelectionMode(QAbstractItemView.SingleSelection)
        self.table_view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        # 假设有一个名为data的二维列表,作为表格的数据源
        data = [
            ['John', 'Doe', 'john.doe@example.com'],
            ['Jane', 'Smith', 'jane.smith@example.com'],
            ['Bob', 'Johnson', 'bob.johnson@example.com']
        ]

        # 创建一个表格模型,并设置数据源
        model = TableModel(data)
        self.table_view.setModel(model)

        # 将表格视图添加到主窗口的布局中
        layout = QVBoxLayout()
        layout.addWidget(self.table_view)

        central_widget = QWidget()
        central_widget.setLayout(layout)
        self.setCentralWidget(central_widget)

    def get_selected_row_index(self):
        selected_indexes = self.table_view.selectedIndexes()
        if selected_indexes:
            # 获取选定行的索引
            row_index = selected_indexes[0].row()
            return row_index
        else:
            return -1

class TableModel(QAbstractTableModel):
    def __init__(self, data):
        super().__init__()
        self.data = data

    def rowCount(self, parent):
        return len(self.data)

    def columnCount(self, parent):
        return len(self.data[0])

    def data(self, index, role):
        if role == Qt.DisplayRole:
            return self.data[index.row()][index.column()]

        return None

if __name__ == '__main__':
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec_()

在上述示例中,我们创建了一个包含三列数据的表格,并设置了选择行的模式为单选。然后,我们定义了一个get_selected_row_index()方法,用于获取选定行的索引。该方法通过调用selectedIndexes()方法获取所有选定单元格的索引,然后返回第一个索引的行号。

请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行适当的修改和扩展。

腾讯云相关产品和产品介绍链接地址:

以上是对获取PyQt5/PySide2中选定行的索引的完善且全面的答案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券