欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

Qt: QTableView如何获取(行)选中、行切换信息

发布时间:2023/12/10 c/c++ 55 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Qt: QTableView如何获取(行)选中、行切换信息 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

**情景:**做一个信息表格,需要多个Model切换,必须用QTableView,而不能用QTableWidget,因为后者不可以进行setModel()。

方案:
QTableView和选择有关的的信号有:

void activated(const QModelIndex &index) void clicked(const QModelIndex &index) void doubleClicked(const QModelIndex &index) void entered(const QModelIndex &index) void pressed(const QModelIndex &index)

没有类似currentRowChanged()信号怎么办?自己响应clicked(const QModelIndex &index)信号吗?虽然可以,但是比较麻烦。
这里的推荐方法是使用QItemSelectionModel(),此类的信号有:

void currentChanged(const QModelIndex &current, const QModelIndex &previous) void currentColumnChanged(const QModelIndex &current, const QModelIndex &previous) void currentRowChanged(const QModelIndex &current, const QModelIndex &previous) void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)

这些信号中可以获取所有选中状态的变化情况,而且便于使用。

细节:
另外,使用中发现,连接QItemSelectionModel的信号必须setModel之后,否则QTableView::selectionModel()返回值为NULL。说明必须在View中有Model之后,才可以进行信号连接。


本文原创首发于公众号 Qt未来工程师。

总结

以上是生活随笔为你收集整理的Qt: QTableView如何获取(行)选中、行切换信息的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。