问题
QTableView选中的行发生变化时,使用的信号是QTableView的selectionModel()里的currentChanged信号,界面点击行来回切换,发现怎么也触发不了?
原因
信号槽连接放在了QTableView数据初始化前面,这时候QTableView中还没有设置Model,所以连接的信号是无效的。
//connect(ui.tableView->selectionModel(), &QItemSelectionModel::currentChanged, this, //[this](const QModelIndex& cur, const QModelIndex& pre)
// {
// //todo...
// });QTableView初始化connect(ui.tableView->selectionModel(), &QItemSelectionModel::currentChanged, this, [this](const QModelIndex& cur, const QModelIndex& pre){//todo...});
解决
把信号槽连接放在QTableView初始化之后。也要注意,如果QTableView中的model被删除了,重新设置新的Model,那也需要重新再进行信号槽的连接,因为这时候QTableView持有的是一个新的SelectionModel了。