首页| 论坛| 消息

标题:拖拽树可以设置只允许一个根节点吗?
作者:meetsu
日期:2020-01-19 15:57
内容:

各位大佬好:

m_tree->setDragEnabled(true);
m_tree->setDropIndicatorShown(true);
m_tree->setDragDropMode(QAbstractItemView::InternalMove);

如上设置之后,拖拽树就可以拖动里面的子项了。
但是拖到没有结点的位置后,新的结点就和根节点同级了(相当于两个根节点)。
提问:
1.有没有办法设置tree的属性为:只允许一个根节点?
2.或者有没有办法限制拖拽树只能在已有结点里面拖动?


#1 [圣域天子 01-19 16:51]
Qt自带的树控件的拖拽功能很弱的,好象是缺少必要的事件的。我一直没法用它
#2 [lemonzll 01-20 08:27]
这种你用qtreewidget没法做,得用qtreeview,model从qabstractitemmodel继承下,定制下dropmimedata函数
#3 回 圣域天子 的帖子 [meetsu 01-20 14:27]
圣域天子:Qt自带的树控件的拖拽功能很弱的,好象是缺少必要的事件的。我一直没法用它 (2020-01-19 16:51) 
对啊,拖拽的信号的都没有,不知道咋办
#4 回 meetsu 的帖子 [圣域天子 01-23 09:37]
meetsu:对啊,拖拽的信号的都没有,不知道咋办 (2020-01-20 14:27)
也不是完全做不到,需要继承后改写两个方法:
virtual void dragMoveEvent(QDragMoveEvent *event) override;
virtual void dropEvent(QDropEvent *event) override;

回复 发表
主题 版块