我需要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
发布于 2015-06-15 12:17:27
我想要的只是将大图标设置为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);
}
};发布于 2015-06-04 14:24:54
在我的应用程序中,我只需使用:
QHeaderView::section {
/* MY CSS STUFF HERE */
}这是他们所有的风格
https://stackoverflow.com/questions/30643067
复制相似问题