首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在样式表方法中使用QStyle::StandardPixmap设置QTreeView背景图像?

如何在样式表方法中使用QStyle::StandardPixmap设置QTreeView背景图像?
EN

Stack Overflow用户
提问于 2019-10-17 07:04:00
回答 1查看 801关注 0票数 0

我需要更改QTreeView背景图像,使用QStyle::StandardPixmap和QT样式表,我尝试了一些方法,但它不工作吗?

样式表看起来是这样的,但它不起作用

代码语言:javascript
复制
QTreeView::branch:closed:adjoins-item {
    border-image: url(QStyle::SP_ArrowBack);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-17 23:40:37

我建议快速将QStyle.SP_ArrowBack上传到SP_ArrowBack.png文件,然后在样式表中使用它。

代码语言:javascript
复制
import sys
from PyQt5.QtWidgets import QTreeView, QFileSystemModel, QApplication, QStyle 
from PyQt5.QtCore    import QDir
from PyQt5.QtGui    import QIcon


class Tree(QTreeView):
    def __init__(self):
        QTreeView.__init__(self)
        self.setWindowIcon(self.style().standardIcon(QStyle.SP_ArrowBack))
### vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv        
        icon = self.style().standardIcon(QStyle.SP_ArrowBack)
        pixmap = icon.pixmap(200, 200, QIcon.Normal, QIcon.On)
        _icon = "{}.png".format("SP_ArrowBack")
        pixmap.save(_icon, quality = -1) 
        print("Icon loaded ...")

        self.setStyleSheet(""" 
        QTreeWidget {border:None;}

        QTreeWidget::item { height: 80px;
                           color: rgba(255,255,255,255);       
        }
        QTreeView {
            alternate-background-color: rgba(135,135,135,255);
            background: rgba(145,145,145,255);
        }            

        QTreeView::branch:has-siblings:!adjoins-item {
            border-image: url(vline.png) 0;                           
        }
        QTreeView::branch:has-siblings:adjoins-item {
            border-image: url(branch-more.png) 0;                    
        }
        QTreeView::branch:!has-children:!has-siblings:adjoins-item {
            border-image: url(branch-end.png) 0;                      
        }
        QTreeView::branch:has-children:!has-siblings:closed,
        QTreeView::branch:closed:has-children:has-siblings {
            border-image: none;
            image: url(%s);                                     /* <--- _icon */
        }
        QTreeView::branch:open:has-children:!has-siblings,
        QTreeView::branch:open:has-children:has-siblings {
            border-image: none;
            image: url(branch-open.png);                               
        }
        QTreeWidget::item[text="Header1"] {
            height: 80px;
        }
        QTreeWidget::item:children {
            height: 40px;
        }
        """ % _icon)               
### ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        

        model = QFileSystemModel()
        model.setRootPath(QDir.currentPath())
        self.setModel(model)
        self.setRootIndex(model.index(QDir.currentPath()))
        model.setReadOnly(True)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = Tree() 
    w.resize(500, 300)    
    w.show()
    sys.exit(app.exec_()) 

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58426704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档