虽然双击QTreeView的文本会展开子项,但单击不会。但是,CSS中定义的图标(放置在文本左侧)只需单击一次即可展开子项。如何使文本的单击(或触摸事件)可以展开子项?
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'); } ");发布于 2010-12-07 06:02:58
一些类似的东西
QObject::connect(
tree, SIGNAL(clicked(const QModelIndex &)),
tree, SLOT(expand(const QModelIndex &))
);clicked信号可能不会执行您想要的操作。您还可以查看currentChanged信号,这可能是您想要的。我从未在移动环境中使用过Qt :)
发布于 2015-12-02 20:52:58
同样的Grund答案,但如果它已经打开,我会在点击时添加close。
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中:
private slots:
void expandItem(const QModelIndex &index)发布于 2010-12-07 05:30:38
您是否已尝试关闭双击扩展功能?
bookTreeView->setExpandsOnDoubleClick(false);https://stackoverflow.com/questions/4371041
复制相似问题