双击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'); } ");
Run Code Online (Sandbox Code Playgroud)
有点像
QObject::connect(
tree, SIGNAL(clicked(const QModelIndex &)),
tree, SLOT(expand(const QModelIndex &))
);
Run Code Online (Sandbox Code Playgroud)
该clicked信号可能不是你想要的.您还可以查看currentChanged信号,这可能是您想要的.我从来没有在移动环境中使用过Qt :)