如何确切知道用户何时扩展QTreeView项目
How to know exactly when a user expands a QTreeView item?
是否有一种方法可以确切知道何时在用户开始时,请说单击qtreeview中的展开箭头?
对于他双击时,我可以捕获双击事件。
我尝试从qtreeview重新完成此插槽void expand(const QModelIndex &index);
,但似乎不起作用。
qtreeview中有一个名为 void expanded(const QModelIndex &index);
的信号,但似乎是在扩展发生后发送的。
我正在使用QT 4.8.2
这是我为获得所需功能所做的工作:
我从qtreeview
从qtreeview重新成熟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
}
}
}
}
我检查一下鼠标按下是否将项目的文本标签保留在项目的文本标签上(含义在展开箭头上)
这与双击事件结合在一起,为我提供了我所需的东西。
您可以通过实现更改事件的方法来尝试此事:
void YourTreeView::changeEvent(QEvent *e)
{
QFrame::changeEvent(e);
switch (e->type()) {
case QEvent::QGraphicsSceneResizeEvent
//do want you want to do
break;
default:
break;
}
}
相关文章:
- 是否可以通过C++扩展强制多个python进程共享同一内存
- static_assert在宏中,但也可以扩展到可以用作函数参数的东西
- QTreeView幻灯片多选后无法使用单击选择
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 扩展光电二极管探测器以支持多个传感器
- C++中的VLA,扩展名为std=C++11
- 使用QTreeView,如何通过调用函数只突出显示特定的行/列
- OpenGL 和 GLM 矩阵无法正确扩展,总是按比例缩小
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- C++返回 Numpy 数组的 Python 扩展模块
- 扩展可变参数模板中的变量名称
- 扩展C++生成的代码的模板参数类型名称
- 我想通过带有C++和Python的插件创建一个可扩展的应用程序
- VSCode IntelliSense无法识别SDL框架的SDL_image扩展库
- 将元组类型扩展为可变参数模板?
- 如何按文件扩展名引用文件夹中的文件
- HDF5Cpp 扩展复合数据集超板问题
- 循环浏览所有项目,其中QTREEVIEW QFILESYSTEMMODEL上具有所需的文件扩展名
- 如何确切知道用户何时扩展QTreeView项目
- QTreeView-删除某些元素的可扩展外观