CSS 访问QHeaderView 项目列设置背景图像,或设置大图标到QHeaderView
CSS to access QHeaderView item columns to set background-image, or set large icon to QHeaderView
我需要 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::section {
/* MY CSS STUFF HERE */
}
这是所有样式的样式
我想要的只是为 QHeaderView 设置大图标,但是 css 我只能访问第一个和最后一个项目,我找到了通过 QProxyStyle 更改 QHeaderView 项目图标大小的解决方案 class我将在这里分享我的解决方案:
您需要做的就是继承 QProxyStyle class 到您自己的 class 覆盖 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 的所有列 将背景图像设置为我可以通过以下方式访问的第一列:
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::section {
/* MY CSS STUFF HERE */
}
这是所有样式的样式
我想要的只是为 QHeaderView 设置大图标,但是 css 我只能访问第一个和最后一个项目,我找到了通过 QProxyStyle 更改 QHeaderView 项目图标大小的解决方案 class我将在这里分享我的解决方案:
您需要做的就是继承 QProxyStyle class 到您自己的 class 覆盖 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);
}
};