qt-material-widgets/components/checkbox.cpp

68 lines
1.5 KiB
C++

#include <QWidget>
#include <QPainter>
#include <QStylePainter>
#include <QStyleOptionButton>
#include "checkbox.h"
Checkbox::Checkbox(QWidget *parent)
: QAbstractButton(parent)
{
setFixedSize(200, 200);
}
Checkbox::~Checkbox()
{
}
void Checkbox::mousePressEvent(QMouseEvent *event)
{
QAbstractButton::mousePressEvent(event);
}
void Checkbox::mouseReleaseEvent(QMouseEvent *event)
{
QAbstractButton::mouseReleaseEvent(event);
}
void Checkbox::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event)
QStylePainter p(this);
QStyleOptionButton opt;
initStyleOption(&opt);
p.drawControl(QStyle::CE_CheckBox, opt);
p.drawRect(rect().adjusted(0, 0, -1, -1)); // tmp
}
void Checkbox::initStyleOption(QStyleOptionButton *option) const
{
if (!option)
return;
//Q_D(const QCheckBox);
option->initFrom(this);
/*
if (d->down)
option->state |= QStyle::State_Sunken;
if (d->tristate && d->noChange)
option->state |= QStyle::State_NoChange;
else
option->state |= d->checked ? QStyle::State_On : QStyle::State_Off;
*/
if (testAttribute(Qt::WA_Hover) && underMouse()) {
/*
if (d->hovering)
option->state |= QStyle::State_MouseOver;
else
option->state &= ~QStyle::State_MouseOver;
*/
}
option->text = "Label label";
/*
option->text = d->text;
option->icon = d->icon;
option->iconSize = iconSize();
*/
}