如何更改QTreeView中项目的焦点矩形的颜色?
问题描述:
在QTreeView中,是否可以轻松更改项目(由多个QStandardItems组成的行)的虚线焦点矩形的颜色?如何更改QTreeView中项目的焦点矩形的颜色?
在样式表QTreeView则::项目:重点不起作用
,我不能重新实现油漆功能定制QItemDelegate,因为它会覆盖我的样式表的设置。
在此先感谢
答
QTreeView::item:selected
作品对我来说:
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QFileSystemModel model;
model.setRootPath(QDir::currentPath());
QTreeView tree;
tree.setModel(&model);
tree.setAllColumnsShowFocus(true);
tree.setStyleSheet("QTreeView::item:selected { border-color:green; "
"border-style:outset; border-width:2px; color:black; }");
tree.show();
return app.exec();
}
正如我所说的,这个解决方案并不为我工作,因为我使用的TreeView多列,它们都显示焦点( ** ** allColumnsShowFocus =真)。有了这个选项设置为false它的作品,但我需要有整个行周围的彩色矩形,而不是一个单一的项目。 –
@DušoBrejka尝试'QTreeView :: item:selected',它工作。唯一的问题是它在行中的每个单独项目周围绘制边框,而不是在所有这些边框上绘制一个边框。也许你可以风格化字体或背景而不是边框?无论如何,我认为不可能在连续的所有列周围制作一个单独的边框。如果仔细观察(至少在Windows中),即使使用上述方法设置边框的风格,虚线边框仍然存在。 – Anthony
谢谢,它确实在certan环境下工作,但它不是我想要的,因为我可以选择多行并且一次集中其他行。所以我想对我来说没有快速简单的解决方案。 –