Código directamente
.h
#ifndef DFMENUICONSTYLE
#define DFMENUICONSTYLE
#include <QObject>
#include <QCommonStyle>
class DFMenuIconStyle : public QCommonStyle
{
Q_OBJECT
public:
DFMenuIconStyle();
~DFMenuIconStyle();
void SetCustomSize(int);
//protected:
virtual int pixelMetric(PixelMetric metric, const QStyleOption* option, const QWidget* widget) const;
private:
int m_nSize = 24;
};
#endif // !DFMenuIconStyle
Cpp
#include "DFMenuIconStyle.h"
DFMenuIconStyle::DFMenuIconStyle()
: QCommonStyle()
{
}
DFMenuIconStyle::~DFMenuIconStyle()
{
}
void DFMenuIconStyle::SetCustomSize(int size)
{
m_nSize = size;
}
int DFMenuIconStyle::pixelMetric(PixelMetric metric, const QStyleOption* option, const QWidget* widget) const
{
int s = QCommonStyle::pixelMetric(metric, option, widget);
if (metric == QStyle::PM_SmallIconSize) {
s = m_nSize;
}
return s;
}
Citar
m_pMenu = nuevo QMenu(this);
m_pMenuStyle = nuevo DFMenuIconStyle();
m_pMenu->setStyle(m_pMenuStyle);
.