如何修改QToolBars展开(>>)按钮图标

问题描述

QToolBars默认展开按钮图标样式单调且尺寸偏小,看上去不够明显,如下图所示
如何修改QToolBars展开(>>)按钮图标_第1张图片
因此需要修改"》"图标。

修改方法

第1步 自定义style类

继承自QProxyStyle类,编写自己的style类,在pixelMetric方法中指定对应图标的大小,例子代码如下
.h文件

#ifndef MYSTYLE_H
#define MYSTYLE_H

#include 
class MyStyle : public QProxyStyle
{
    Q_OBJECT
public:
    MyStyle();
    ~MyStyle();
    int pixelMetric(PixelMetric m, const QStyleOption *opt = 0, const QWidget *widget = 0) const;
private:
    QIcon _toolBarExtendButtonIcon;
};
#endif // MYSTYLE_H

.cpp文件

#include "mystyle.h"
MyStyle::MyStyle()
{
    _toolBarExtendButtonIcon = QIcon("xxxx.png");
}
MyStyle::~MyStyle()
{
}
 int MyStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWidget *widget) const
{
     if (m == QStyle::PM_ToolBarExtensionExtent)
        return 20;//指定"《"按钮大小
     if(m == QStyle::PM_SmallIconSize)
        return 52;//指定下拉小图标大小
     return QProxyStyle::pixelMetric(m, opt, widget);
}

第2步 修改css文件,添加qt_toolbar_ext_button对应图标

QToolBar #qt_toolbar_ext_button{
    qproperty-icon:url('xxx.png')
}

效果图

问题解决,效果如下图所示
如何修改QToolBars展开(>>)按钮图标_第2张图片

你可能感兴趣的:(Qt&C++,Qt&C++)