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)试下
在隐藏点。
我们知道在数据结构上来说,任何树都是有根节点的,但我们在QTreeWidget对象中并没有看到界面上展示一个根节点,在QTreeWidget对象和数据项构建时也没有指定这样的根节点,但实际上这个根节点还是存在的,只是不可见,且该节点是树型部件创建之后就自动创建,无论是否存在顶层项。
主要是可以用于递归访问树的所有节点,递归不是从topLevelItem开始,而是从根节点开始,所有节点的类型都是QTreeWidgetItem,可以用QTreeWidgetItem的child方法逐层递归访问。
QList<QTreeWidgetItem > rootList;//创建一个QList队列,队列名字叫做rootList,队列中每个元素是QTreeWidgeItem指针。(QTreeWidgetItem是树状图控件的一个节点)
rootList << root;//表示把root节点放到rootList中去。
tree->insertTopLevelItems(0, rootList); //把rootList中的所有节点,挂载到tree控件的顶层。
你看一下这篇提问,能够解决你的问题: stackoverflowcom/questions/12937812/how-to-create-different-popup-context-menus-for-each-type-of-qtreewidgetitem
也有示例代码下载链接。
我有个思路,你的好友列表既然是treeWidgetItem ,那么,当你打开聊天对话框的时候你就给对应的好友所在的Item设置一下,item->setText(1,"OPEN");关闭对话框的时候设置为"Close";
然后再双击的时候就判断那个Item的第一个Text的值,查看是否为close,是的话就打开对话框,不是的话就不打开。
我想这个思路应该可行,有问题再补充!
currentItem()返回的是当前被选中的item如果你当前选中的是第0个item返回的当然就是第0个item了啊。
如果你非要返回第N个item用QTreeWidgetItem QTreeWidget::topLevelItem ( int index ) const
这个函数来返回第N个,QTreeWidget::topLeveItem(N-1);
滤过父节点不可能,但是双击目标,还可以产生响应的事件。这是我写过的代码:单击事件(可以改双击,内容一样)
首先再 建树时注意加上一句:
HTREEITEM root = m_treeInsertItem(_T("图层集合"),TVI_ROOT);
m_treeSetItemData(root, 0);//就是加上的语句,0(可变)就是后面的nDat
void TreeDolg::OnNMClickTree1(NMHDR pNMHDR, LRESULT pResult)
{
// TODO: 在此添加控件通知处理程序代码
CPoint pt = GetCurrentMessage()->pt;//获取当前鼠标点击消息的坐标点
m_treeScreenToClient(&pt);//将鼠标的屏幕坐标,转换成树形控件的客户区坐标
UINT uFlags = 0;
HTREEITEM hItem = m_treeHitTest(pt, &uFlags);//然后做点击测试
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))//如果点击的位置是在节点位置上面
{
m_treeSelectItem(hItem);
//获取开始我们设置的数据,注意这就是我为什么开始要每个节点设置不同的数据的原因。
//当然,如果你的数据节点比较少,你也可以通过获取节点的文字,如上面设置的"海淀区"
//,然后通过字符串比较来判断点击了哪个节点
int nDat = m_treeGetItemData(hItem); //然后根据不同的节点,你完成不同的动作即可
switch(nDat)
{
case 0:
break;
default:
}
}
pResult = 0;
}
以上就是关于关于qt中的QTreeWidget的拖放问题全部的内容,包括:关于qt中的QTreeWidget的拖放问题、treewidget的根节点初始位置、新手求助,Qt问题,下面那段代码是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)