首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS访问QHeaderView项列以设置背景图像,或将大图标设置为QHeaderView。

CSS访问QHeaderView项列以设置背景图像,或将大图标设置为QHeaderView。
EN

Stack Overflow用户
提问于 2015-06-04 11:49:13
回答 2查看 1.1K关注 0票数 3

我需要CSS访问QHeaderView的所有列,以将后台映像设置为我可以通过以下方式访问的第一列:

代码语言:javascript
复制
QHeaderView::section:horizontal:first{

    background-image: url(:/Icons/icon_1.png);
    background-position:left;
    background-repeat:no-repeat;
    border: 1px solid #4B4B4B;
}

到最后一栏,我可以通过以下方式访问:

代码语言:javascript
复制
QHeaderView::section:horizontal:last{

    background-image: url(:/Icons/icon_5.png);
    background-position:left;
    background-repeat:no-repeat;
    border: 1px solid #4B4B4B;
}

你知道我怎么能拿到第三名.等等专栏?设置背景图像或将大图标设置为QHeaderView

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-15 12:17:27

我想要的只是将大图标设置为QHeaderView,但是使用css我可以只访问第一项和最后一项,我找到了一个通过QProxyStyle类更改QHeaderView项图标大小的解决方案,我将在这里分享我的解决方案:

您所需要做的就是将QProxyStyle类继承到您自己的类中,重写drawControl方法,将setStyle继承到您的TreeView。

代码语言:javascript
复制
   HeaderStyle* style= new HeaderStyle();
    treeVew->header()->setStyle(style);

您可以使用

代码语言:javascript
复制
 Model->horizontalHeaderItem(0)->setIcon(QIcon(":/Icons/icon_1.png"));

设置你的图标

代码语言:javascript
复制
class HeaderStyle : public QProxyStyle
{
public:
    void drawControl(ControlElement element,const QStyleOption * option, QPainter * painter, const QWidget * widget = 0) const
    {
        if (element == CE_HeaderLabel) {

            QStyleOptionHeader *op = (QStyleOptionHeader *) option;

            QIcon icon = qvariant_cast<QIcon>(op->icon);
            QSize iconsize(120,120);

            QRect iconRect = op->rect;
            QPixmap pixmap = icon.pixmap(iconsize.width(),iconsize.height());


            painter->drawPixmap(QPoint(iconRect.left() + 5, iconRect.top()+ 5), pixmap);

            return;
        }
        QProxyStyle::drawControl(element, option, painter, widget);
    }

};
票数 1
EN

Stack Overflow用户

发布于 2015-06-04 14:24:54

在我的应用程序中,我只需使用:

代码语言:javascript
复制
QHeaderView::section {
    /* MY CSS STUFF HERE */
}

这是他们所有的风格

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

https://stackoverflow.com/questions/30643067

复制
相关文章

相似问题

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