gpt4 book ai didi

CSS 访问QHeaderView item columns设置background-image,或者设置大图标给QHeaderView

转载 作者:行者123 更新时间:2023-12-01 10:13:51 25 4
gpt4 key购买 nike

我需要 CSS 访问 QHeaderView 的所有列 将背景图像设置为我可以通过以下方式访问的第一列:

QHeaderView::section:horizontal:first{

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

我可以通过以下方式访问最后一列:

QHeaderView::section:horizontal:last{

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

知道如何获得第二个三分之一...等列吗?设置背景图片或设置大图标为QHeaderView

最佳答案

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

所有你需要做的就是继承 QProxyStyle 类到你自己的类覆盖 drawControl 方法和 setStyle 到你的 TreeView

   HeaderStyle* style= new HeaderStyle();
treeVew->header()->setStyle(style);

你可以使用

 Model->horizontalHeaderItem(0)->setIcon(QIcon(":/Icons/icon_1.png"));

设置图标

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);
}

};

关于CSS 访问QHeaderView item columns设置background-image,或者设置大图标给QHeaderView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30643067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com