如何更改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(); 
} 
+0

正如我所说的,这个解决方案并不为我工作,因为我使用的TreeView多列,它们都显示焦点( ** ** allColumnsShowFocus =真)。有了这个选项设置为false它的作品,但我需要有整个行周围的彩色矩形,而不是一个单一的项目。 –

+0

@DušoBrejka尝试'QTreeView :: item:selected',它工作。唯一的问题是它在行中的每个单独项目周围绘制边框,而不是在所有这些边框上绘制一个边框。也许你可以风格化字体或背景而不是边框​​?无论如何,我认为不可能在连续的所有列周围制作一个单独的边框。如果仔细观察(至少在Windows中),即使使用上述方法设置边框的风格,虚线边框仍然存在。 – Anthony

+0

谢谢,它确实在certan环境下工作,但它不是我想要的,因为我可以选择多行并且一次集中其他行。所以我想对我来说没有快速简单的解决方案。 –