8

我有一个QTableView工作正常,在 GUI 上显示我的模型。但是,我想创建一个“SIGNAL/SLOT”,当我从QTableView.

我怎样才能做到这一点?

4

3 回答 3

6

你可以这样做:

connect(ui->tableView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
             SLOT(slotSelectionChange(const QItemSelection &, const QItemSelection &))
            );

插槽将是:

void MainWindow::slotSelectionChange(const QItemSelection &, const QItemSelection &)
{
            QModelIndexList selection = ui->tableView->selectionModel()->selectedRows();//Here you are getting the indexes of the selected rows

            //Now you can create your code using this information
}

我希望这可以帮助你。

于 2015-09-02T23:38:39.253 回答
2

请参阅文档 QAbstractItemView https://qt-project.org/doc/qt-4.7/qabstractitemview.html

无效 QAbstractItemView 已激活(const QModelIndex &index ) [信号]

当用户激活 index 指定的项目时,会发出此信号。如何激活物品取决于平台;例如,通过单击或双击项目,或在项目为当前时按 Return 或 Enter 键。

并使用 QModelIndex::row()

于 2013-04-23T14:42:49.480 回答
2

使用currentRowChanged(const QModelIndex & current, const QModelIndex & previous)来自选择模型 ( docs ) 的信号。

于 2013-04-23T14:16:34.410 回答