如何将渐变设置为 QML TreeView 背景?

Posted

技术标签:

【中文标题】如何将渐变设置为 QML TreeView 背景?【英文标题】:How to set gradient to QML TreeView background? 【发布时间】:2018-07-11 15:36:57 【问题描述】:

我试图将 TreeView 的背景更改为渐变色,但我找不到任何方法。

在TreeViewStyle 中,唯一与背景相关的属性是:“backgroundColor”,但只接收color 类型。

那么,是否可以将背景设置为渐变?

【问题讨论】:

【参考方案1】:

演示:

TreeView 
    id: tree
    TableViewColumn 
        title: "Name"
        role: "fileName"
        width: 300
    
    TableViewColumn 
        title: "Permissions"
        role: "filePermissions"
        width: 100
    
    model: FolderListModel 

    Component 
        id: gradient
        LinearGradient 
            gradient: Gradient 
                GradientStop  position: 0.0; color: "white" 
                GradientStop  position: 1.0; color: "black" 
            
        
    

    rowDelegate: Item   // make rows transparent to show the background

    Component.onCompleted: 
        // the sibling of listView is the background(Rectangle) of TreeView
        var bg = tree.__listView.parent.children[1]
        // set the gradient effect to the background 
        gradient.createObject(bg, 'anchors.fill': bg)
    

【讨论】:

以上是关于如何将渐变设置为 QML TreeView 背景?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 QMdiArea 小部件的背景 QBrush 设置为系统颜色渐变?

IText - 如何将渐变设置为PDF文档的背景?

Winform中Treeview控件失去焦点,如何将选择的节点还设置为高亮显示?

如何使 TreeView 背景色透明?

“线性渐变”阻碍了 QML 中的所有底层项目

QML TreeView按级别或自定义委托显示节点