首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt -在单击时展开QTreeView?

Qt -在单击时展开QTreeView?
EN

Stack Overflow用户
提问于 2010-12-07 05:16:58
回答 4查看 6.6K关注 0票数 5

虽然双击QTreeView的文本会展开子项,但单击不会。但是,CSS中定义的图标(放置在文本左侧)只需单击一次即可展开子项。如何使文本的单击(或触摸事件)可以展开子项?

代码语言:javascript
复制
    bookTreeView->setModel(standardModel);
    bookTreeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
    bookTreeView->setWordWrap(true);
    bookTreeView->sizeHint();
    //bookTreeView->mousePressEvent(QMouseEvent());
    bookTreeView->setTextElideMode(Qt::ElideNone);
    bookTreeView->setExpandsOnDoubleClick(true);
    bookTreeView->setUniformRowHeights(true);
    bookTreeView->setHeaderHidden(true);
    bookTreeView->setStyleSheet("QTreeView { font-size: 27px; show-decoration-selected: 0; } QTreeView::branch:has-siblings:!adjoins-item { border-image: none; } QTreeView::branch:has-siblings:adjoins-item { border-image: none; } QTreeView::branch:!has-children:!has-siblings:adjoins-item { border-image: none;} QTreeView::branch:has-children:!has-siblings:closed, QTreeView::branch:closed:has-children:has-siblings { border-image: none; image: url(':images/images/right_arrow.png'); } QTreeView::branch:open:has-children:!has-siblings, QTreeView::branch:open:has-children:has-siblings  { border-image: none; image: url(':images/images/down_arrow.png'); } ");
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-07 06:02:58

一些类似的东西

代码语言:javascript
复制
QObject::connect(
    tree, SIGNAL(clicked(const QModelIndex &)), 
    tree, SLOT(expand(const QModelIndex &))
);

clicked信号可能不会执行您想要的操作。您还可以查看currentChanged信号,这可能是您想要的。我从未在移动环境中使用过Qt :)

票数 8
EN

Stack Overflow用户

发布于 2015-12-02 20:52:58

同样的Grund答案,但如果它已经打开,我会在点击时添加close。

代码语言:javascript
复制
QObject::connect(
    tree, SIGNAL(clicked(const QModelIndex &)), 
    this, SLOT(expandItem(const QModelIndex &))
);

void MainWindow::expandItem(const QModelIndex &index)
{
    tree->isExpanded(index)? tree->collapse(index) : tree->expand(index);
}

在mainwindow.h中:

代码语言:javascript
复制
private slots:
void expandItem(const QModelIndex &index)
票数 3
EN

Stack Overflow用户

发布于 2010-12-07 05:30:38

您是否已尝试关闭双击扩展功能?

代码语言:javascript
复制
bookTreeView->setExpandsOnDoubleClick(false);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4371041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档