QTreeView多信号触发问题

QIUSQJF 2016-01-15 03:16:28
正在做一个用QTreeView做导航树的开发,增、删、改、拖拽等等都实现了。现在的问题是我想每次在QTreeView的节点改变时,比如重命名、节点移动...任何的变化都触发一个信号,把这个导航树保存为xml。
貌似没有找到一个信号可以替代上面所有的事件,有一个信号QAbstractItemModel::rowsInserted会触发上面大部分的情况,但问题是当我拖动一个节点(该节点下又有好多子节点),导致一次拖动触发N多个信号,而我响应这个信号仅仅是把这个变化后的情况保存为xml,但是一次触发那么多信号,就~~~能不能只扑捉最后一次信号,就触发。connect有个Qt::UniqueConnection,但是貌似没有效果。
现在只能要么在程序退出时保存一次,要么使用定时器定时保存,要么就保存多次~~
还有没有其他信号或者方法???
先谢了~~~
...全文
325 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
void_main_void 2016-01-15
  • 打赏
  • 举报
回复
那我就来节分了。。
QIUSQJF 2016-01-15
  • 打赏
  • 举报
回复
额,已解决! 不过就是增加一个QTimer定时器,初始化时定时器不运行,当QTreeView节点发生变化时,先判断当前定时器是否在运行,如果在运行就直接返回,否则就使能定时器,定时器超时一定的间隔,在定时器超时函数中保存好xml文件后,再关闭定时器。这样就能最大限度的减少保存次数~~~ 要分的速来~~~~~

16,818

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧