【问题标题】:How to get cell value from selected row (QTableView)?如何从选定的行(QTableView)中获取单元格值?
【发布时间】:2012-07-27 11:36:43
【问题描述】:

我有一个QTableView,我需要从所选行的第一个单元格中获取值(字符串)(可以选择行上的任何单元格)。但我需要这个值只有当恰好选择了一行

我想 - 我需要获取所选行的索引,然后获取该行上第一个 сell 的值,但我找不到方法。

【问题讨论】:

    标签: c++ qt qtableview


    【解决方案1】:
    myTableView->selectionModel()->currentIndex().row()
    

    将为您提供当前选定行的索引。从那里您应该有足够的信息来查找模型中的行/列对。

    另外,QItemSelectionModel::selectedRows() 会告诉您选择了多少行。

    【讨论】:

    • 我可以获取行索引,但是例如如何获取第一列的值?
    • @Suda.nese 提出的一个老问题,但对于需要获取值的其他任何人:QModelIndex index=myTableView->selectionModel()->currentIndex(); 获取索引,然后QVariant value=index.sibling(index.row(),index.column()).data(); 将获取单击单元格的值。跨度>
    • 非常有帮助,可以确认这也适用于 PyQt5
    【解决方案2】:

    Python 代码如下所示:

        self.tableView.clicked.connect(self.on_Click)
    

    当用户单击表格单元格时,会调用 on_Click() 方法

        def on_Click(self):
            # #selected cell value.
            index=(self.tableView.selectionModel().currentIndex())
            # print(index)
            value=index.sibling(index.row(),index.column()).data()
            print(value)
    

    解释。

    “value”包含所选单元格的单元格值。

           index.row() # gives current selected row.
           index.column() # gives current selected column.
           index.sibling(index.row(),index.column()).data() # will return cell data
    

    【讨论】:

    • 您的回答为我指明了正确的方向,并帮助我解决了几个月来从我的 qtableview qsqltablemodel 索引获取工具提示的问题。我唯一要做的就是使用因为我已经尝试了这个index.sibling(index.row(),index.column()).data(),并将列设置为5,但它没有工作index.sibling(index.row(),index.column(5)).data()所以我最终使用了这个,它可以从同一个索引行中获取值但是选择的第 5 列。 index.siblingAtColumn(5).data()
    • 像魅力一样工作..!
    猜你喜欢
    • 2018-08-12
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    相关资源
    最近更新 更多