• 8661阅读
  • 8回复

[提问]QTreeWidgetItem 拖拽的问题 [复制链接]

上一主题 下一主题
离线郭亮
 
只看楼主 倒序阅读 楼主  发表于: 2011-10-14
关键词: 紧急求助
我现在要实现拖放功能,以下是两个QTreeWidget的样式
local:                                     remoto:
FileA                                     DirA
FIleB                                        DirA_1
FileC                                        DirA_2
                                              DirB

当我拖动FileA到DirA上的时候,希望将FileA插入到DirA下。我现在遇到的问题是,拖到DirA上时没办法获取DirA这个item的信息,即拖动时(松手之前)MouseTracking无效,求各位大侠帮忙解决!
离线ppdayz

只看该作者 1楼 发表于: 2011-10-14
回 楼主(郭亮) 的帖子
item的信息是指什么?你看看2边的treewidget的属性设置,不能拖拽很可能就是属性设置不对
找到dragdrop
里面有很多选项,认真试下
离线郭亮
只看该作者 2楼 发表于: 2011-10-14
回 1楼(ppdayz) 的帖子
我想在拖拽到remoto的相应节点时背景变色或者其他什么方法,来知道当前鼠标拖到哪一项上了。
离线ppdayz

只看该作者 3楼 发表于: 2011-10-15
回 2楼(郭亮) 的帖子


showDropIndicator : bool


This property holds whether the drop indicator is shown when dragging items and dropping.
Access functions:
boolshowDropIndicator () const
voidsetDropIndicatorShown ( bool enable )

默认是打开的
如图
虽然简陋了点,但是自带的还是可以看到的
离线郭亮
只看该作者 4楼 发表于: 2011-10-15
回 3楼(ppdayz) 的帖子
如何设置showDropIndicator?是在右边Widget初试化时,还是给每个QTreeWidgetItem设置?能不能详细点,最好有代码,我是QT小白
离线ppdayz

只看该作者 5楼 发表于: 2011-10-15
回 4楼(郭亮) 的帖子
这个是针对与view的设置(你可以理解为是针对整个QTreeWidget的设置)
只要TreeWidget->setDropIndicatorShown(true);
或者在 qt designer中对整个树的设置
离线郭亮
只看该作者 6楼 发表于: 2011-10-15
回 5楼(ppdayz) 的帖子
我是用代码实现的。  右边的界面为projectTreeWidget,初试化代码如下
ProjectTreeWidget::ProjectTreeWidget(QWidget *parent)
                                   : QTreeWidget(parent)
{
      this->setDropIndicatorShown(true);//显示拖动位置
   setAcceptDrops(true);//允许拖放
   setMouseTracking(true);//追踪鼠标移动
  .........
}
这样设置这些参数,拖过来后鼠标下的QTreeWidgetItem还是没有效果,左边的界面还要进行设置吗?
离线ppdayz

只看该作者 7楼 发表于: 2011-10-17
回 6楼(郭亮) 的帖子
不是这样的。你要在接收拖拽的那个treewidget上开属性
比如tree1 是src,
        tree2 是desc,tree2只接受拖拽,自己不能拖拽
就应该这样设置
tree1->setDragDropMode(QAbstractItemView::DragOnly);

tree2->setDragDropMode(QAbstractItemView::DropOnly);

要设置其他效果的化还要用到
void setDefaultDropAction ( Qt::DropAction dropAction );

离线苍井空

只看该作者 8楼 发表于: 2015-03-31
我想知道最后tableWidgetItem如何现实拖拽的文本。
快速回复
限100 字节
 
上一个 下一个