qt qtreewidget自动展开失效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt qtreewidget自动展开失效相关的知识,希望对你有一定的参考价值。

参考技术A QTreeWidget的一个函数即可搞定,voidsetItemsExpandable ( bool enable ), 该函数来自QTreeView。设置是否允许用户展开和收缩Item。因此要保持展开状态我们只需调用树形控件的两个接口就好了
设置的就是itemsExpandable这个属性,默认是true。我们只需要设置为false就不允许用户收缩/展开Item了。但是我们的目的是要让Item始终保持展开,那不是很矛盾吗?实际上不允许用户收缩/展开但是我们可以通过接口来使Item展开。调用QTreeWidgetItem的setExpanded。更快捷的方式就是调用QTreeWidget的expandAll()。

关于qt中的QTreeWidget的拖放问题

我在做一个ftp下载的客户端
其中本地目录和远程目录是两个QTreeWidget
我现在要实现拖放功能,以下是两个QTreeWidget的样式
local:
FileA
FIleB
FileC

remoto:
DirA
DirA_1
DirA_2
DirB

当我拖动FileA到DirA上的时候,展开DirA,我现在遇到的问题是,拖到DirA上时没办法获取DirA这个item,
我现在的做法是dragEnterEvent事件触发是connect一个itemEntered的信号,这样鼠标移到DirA上时就可以得到这个item了,
但是运行之后发现,itemEntered信号只有在dropEvent后才会被触发,drag期间并没有触发,大家帮我想想解决方法是什么
谢谢啦
treewidget->setMouseTracking(true)
这个我已经设了,没有

参考技术A void QTreeWidget::itemEntered ( QTreeWidgetItem * item, int column ) [signal]

This signal is emitted when the mouse cursor enters an item over the specified column. QTreeWidget mouse tracking needs to be enabled for this feature to work.
你把treewidget->setMouseTracking(true)试下本回答被提问者采纳
参考技术B 能够把代码贴出来,分享下吗?

以上是关于qt qtreewidget自动展开失效的主要内容,如果未能解决你的问题,请参考以下文章

关于qt中的QTreeWidget的拖放问题

QTreeWidget 仅在按键时拖放

Qt QTreeWidget 树形结构实现(转)

QT 基础Qt中实现树形结构可以使用QTreeWidget类

QT如何设置QTreeWidget行高?

如何以编程方式停止在 Qt 中编辑 QTreeWidget?