QTableView 绑定选择改变信号的C++代码
时间: 2023-12-19 22:07:59 浏览: 45
如果你想在 C++ 中实现 QTableView 的选择变化监测,可以通过绑定 selectionChanged 信号和其对应的槽函数来实现。下面是一个示例代码:
```cpp
#include <QApplication>
#include <QTableView>
#include <QItemSelectionModel>
#include <QModelIndex>
class MyTableView : public QTableView
{
public:
MyTableView(QWidget *parent = nullptr)
: QTableView(parent)
{
connect(selectionModel(), &QItemSelectionModel::selectionChanged,
this, &MyTableView::selectionChanged);
}
private slots:
void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
{
QModelIndexList selectedIndexes = selected.indexes();
foreach (const QModelIndex &index, selectedIndexes) {
qDebug() << "Selected:" << index.row() << index.column();
}
QModelIndexList deselectedIndexes = deselected.indexes();
foreach (const QModelIndex &index, deselectedIndexes) {
qDebug() << "Deselected:" << index.row() << index.column();
}
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyTableView table;
table.show();
return a.exec();
}
```
这个例子中,我们创建了一个自定义的 QTableView 类 MyTableView,并在构造函数中绑定了 selectionChanged 信号到 selectionChanged 槽函数。在 selectionChanged 函数中,我们可以通过 selected 和 deselected 参数获取当前选择的行和列的索引。需要注意的是,我们需要在函数中使用 QModelIndexList 来保存选择的索引。