gpt4 book ai didi

c++ - 如何准确知道用户何时展开 QTreeView 项目?

转载 作者:太空狗 更新时间:2023-10-29 19:53:32 29 4
gpt4 key购买 nike

有没有一种方法可以准确地知道当用户(比方说单击 QTreeView 中的展开箭头)时展开操作何时开始?

对于他双击的情况,我可以捕捉到双击事件。

我尝试从 QTreeView 重新实现这个插槽 void expand(const QModelIndex &index); 但它似乎不起作用。

QTreeView 中有一个名为 void expanded(const QModelIndex &index); 的信号,但它似乎是在扩展发生后发送的。

我正在使用 QT 4.8.2

最佳答案

这是我为获得我需要的功能所做的:

我像这样从 QTreeView 重新实现了 mousePressEvent

void MyTreeView::mousePressEvent(QMouseEvent *event)
{
QModelIndex clickedIndex = indexAt(event->pos());
if(clickedIndex.isValid())
{
QRect vrect = visualRect(clickedIndex);
int itemIdentation = vrect.x() - visualRect(rootIndex()).x();
if(event->pos().x() < itemIdentation)
{
if(!isExpanded(clickedIndex))
{
//do stuff
}
}
}
}

我检查鼠标按下是否留在项目的文本标签上(意思是在展开箭头上)

这与双击事件相结合,为我提供了所需的东西。

关于c++ - 如何准确知道用户何时展开 QTreeView 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13124016/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com