mess around with various QStyle settings

This commit is contained in:
lazerpants 2016-03-18 17:07:50 +03:00
parent 58c40da756
commit 7a04c5f45c
2 changed files with 124 additions and 0 deletions

111
style.cpp
View File

@ -1,3 +1,6 @@
#include <QDebug>
#include <QPainter>
#include <QStyleOption>
#include "style.h"
Style::Style()
@ -8,3 +11,111 @@ Style::Style()
Style::~Style()
{
}
void Style::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,
const QWidget *w) const
{
qDebug() << pe;
switch (pe) {
case PE_FrameFocusRect:
p->setPen(Qt::blue);
p->drawRect(opt->rect);
break;
default:
QCommonStyle::drawPrimitive(pe, opt, p, w);
}
}
void Style::drawControl(ControlElement element, const QStyleOption *opt,
QPainter *p, const QWidget *widget) const
{
qDebug() << element;
switch (element) {
/*
case CE_FocusFrame:
p->fillRect(opt->rect, opt->palette.foreground());
break;
*/
default:
QCommonStyle::drawControl(element, opt, p, widget);
}
}
QRect Style::subElementRect(SubElement sr, const QStyleOption *opt,
const QWidget *widget) const
{
qDebug() << "subElementRect : " << sr;
qDebug() << "-----------------------------------------------";
QRect r;
switch (sr) {
case SE_PushButtonFocusRect:
if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
r.setRect(btn->rect.x(), btn->rect.y(), btn->rect.width() - 1, btn->rect.height() - 1);
r = visualRect(opt->direction, opt->rect, r);
}
break;
default:
r = QCommonStyle::subElementRect(sr, opt, widget);
}
qDebug() << "r = " << r;
qDebug() << "===============================================";
return r;
}
void Style::drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p,
const QWidget *w) const
{
qDebug() << "drawComplexControl : " << cc;
qDebug() << "===============================================";
switch (cc) {
default:
return QCommonStyle::drawComplexControl(cc, opt, p, w);
}
}
QRect Style::subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc,
const QWidget *w) const
{
qDebug() << "subControlRect : " << cc;
qDebug() << "------------------------------------------------";
QRect r;
switch (cc) {
default:
r = QCommonStyle::subControlRect(cc, opt, sc, w);
}
qDebug() << "r = " << r;
qDebug() << "===============================================";
return r;
}
int Style::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWidget *widget) const
{
qDebug() << "pixelMetric : " << m;
qDebug() << "-----------------------------------------------";
int ret;
switch (m) {
case PM_FocusFrameVMargin:
case PM_FocusFrameHMargin:
case PM_DefaultFrameWidth:
ret = 0;
break;
default:
ret = QCommonStyle::pixelMetric(m, opt, widget);
}
qDebug() << "ret = " << ret;
qDebug() << "===============================================";
return ret;
}

13
style.h
View File

@ -10,6 +10,19 @@ class Style : public QCommonStyle
public:
Style();
~Style();
void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,
const QWidget *w = 0) const Q_DECL_OVERRIDE;
void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p,
const QWidget *w = 0) const Q_DECL_OVERRIDE;
QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p,
const QWidget *w = 0) const Q_DECL_OVERRIDE;
QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc,
const QWidget *w = 0) const Q_DECL_OVERRIDE;
int pixelMetric(PixelMetric m, const QStyleOption *opt = 0, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
};