¿Puedo cambiar la posición del ícono Qmenu20170819 12:16
La publicación es muy simple y todos deberían poder entenderla. El objetivo principal aquí es permitir. todos recuerdan Vive para que no lo olvides.
Problema: QMenu usa QPlastiqueStyle, que usa QStyle::PM_SmallIconSize por defecto
Solución: Defina un nuevo estilo que herede de QPlastiqueStyle y reemplace QStyle::PM_SmallIconSize.
SmallIconSize
Código de muestra:
Entonces
Eso es todo, ¡pan comido!
ps: Cómo saber el estilo usado por defecto, puedes llamar al método metaObject ()-> className (), aún no lo he probado
Acerca del código :
/////////////////////////////////////////// ////// // ////////////
// Definición de icono grande de QMenu
///////// ///////// ////////////////////////////////////////// //
# ifndef CUSTOMICONSTYLE_ H
#define CUSTOMICONSTYLE_H
#include
clase CustomIconStyle: public QCommonStyle
{
Q_ OBJECT
público:
CustomIconStyle();
~CustomIconStyle();
void SetCustomSize(int);
//protected:
virtual int pixelMetric(PixelMetric métrica, const QStyleOption * opción, const QWidget * widget) const;
privado:
int mSize;
} ;
#endif // CUSTOMICONSTYLE_H
#include "CustomIconStyle.h"
CustomIconStyle:: CustomIconStyle()
{
mSize = 20;
}
CustomIconStyle:: ~CustomIconStyle()
{
}
void CustomIconStyle::SetCustomSize( int nSize )
{
mSize = nSize;
}
int CustomIconStyle::pixelMetric métrica, const QStyleOption * opción, const QWidget * widget ) const
{
int s = QCommonStyle::pixelMetric (métrica, opción, widget);
if (métrica == QStyle::PM_SmallIconSize) {
s = mSize;
}
return s ;
}
Método de llamada:
CustomIconStyle* pStyle = new CustomIconStyle;
mpMikeMenu->setStyle(pStyle);20170819 12:.50