调用 QItemSelectionModel::select 后如何重绘 QTreeView?

Posted

技术标签:

【中文标题】调用 QItemSelectionModel::select 后如何重绘 QTreeView?【英文标题】:How to repaint a QTreeView after calling QItemSelectionModel::select? 【发布时间】:2019-08-22 11:15:20 【问题描述】:

我有一个使用自定义 QAbstractItemModel 的 QTreeView。我用

更新树视图选择
treeView->selectionModel()->select(selection, QItemSelectionModel::ClearAndSelect);

它还应该发出信号 selectionChanged 以便树视图接收。我的问题是树视图在我与光标交互之前不会刷新。

我已经尝试调用 treeView->update() 但它没有任何区别。我错过了什么?

【问题讨论】:

你这样做了吗:connect(selectionModel(),SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),treeView, SIGNAL(selectionChanged()));? 【参考方案1】:

抱歉,我意识到我正在进一步阻止 QItemSelectionModel 信号,以避免重复调用函数。

【讨论】:

很高兴知道您解决了问题。请问问自己这个 Q/A 对未来的读者有多大价值(如果有人遇到类似问题,在什么情况下会发现)。可能,最好把 Q 和 A 一起删除。

以上是关于调用 QItemSelectionModel::select 后如何重绘 QTreeView?的主要内容,如果未能解决你的问题,请参考以下文章

java三种调用方式(同步调用/回调/异步调用)

LINUX系统调用

引用调用 vs 复制调用调用

RPC 调用和 HTTP 调用的区别

js方法调用

深入理解Java虚拟机——方法调用(解析调用)