Button
::Button(int w,
int h,
QString cap
){ caption = cap;
width = w;
height = h;
color.setRed(40);
color.setGreen(40);
color.setBlue(40);
pen.setColor(color.lighter(130));
pen.setWidth(2);
}
QRectF Button
::boundingRect() const{ double margin = 2;
return QRectF(0,
0,width
+margin,height
+margin
);
}
Q_UNUSED(widget);
if (option
->state
& QStyle::State_Sunken){ qDebug() << "I'm being pressed";
painter
->setRenderHints
(QPainter::Antialiasing|QPainter
::TextAntialiasing);
painter->setPen(pen);
painter->setBrush(brush);
painter
->drawRoundedRect
(QRect(0,
0,width,height
),
20.0,
20.0,Qt
::RelativeSize);
}
else{
painter
->setRenderHints
(QPainter::Antialiasing|QPainter
::TextAntialiasing);
painter->setPen(pen);
painter->setBrush(brush);
painter
->drawRoundedRect
(QRect(0,
0,width,height
),
20.0,
20.0,Qt
::RelativeSize);
}
}
if (event->button() != Qt::LeftButton){
event->ignore();
return;
}
qDebug() << "press";
update();
}
qDebug() << "release";
emit(clicked());
}
Button::Button(int w, int h, QString cap){
caption = cap;
width = w;
height = h;
color.setRed(40);
color.setGreen(40);
color.setBlue(40);
pen.setColor(color.lighter(130));
pen.setWidth(2);
}
QRectF Button::boundingRect() const{
double margin = 2;
return QRectF(0,0,width+margin,height+margin);
}
void Button::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){
Q_UNUSED(widget);
if (option->state & QStyle::State_Sunken){
qDebug() << "I'm being pressed";
painter->setRenderHints(QPainter::Antialiasing|QPainter::TextAntialiasing);
QBrush brush(color);
painter->setPen(pen);
painter->setBrush(brush);
painter->drawRoundedRect(QRect(0,0,width,height),20.0,20.0,Qt::RelativeSize);
}
else{
painter->setRenderHints(QPainter::Antialiasing|QPainter::TextAntialiasing);
QBrush brush(color);
painter->setPen(pen);
painter->setBrush(brush);
painter->drawRoundedRect(QRect(0,0,width,height),20.0,20.0,Qt::RelativeSize);
}
}
void Button::mousePressEvent(QGraphicsSceneMouseEvent *event){
if (event->button() != Qt::LeftButton){
event->ignore();
return;
}
qDebug() << "press";
QGraphicsItem::mousePressEvent(event);
update();
}
void Button::mouseReleaseEvent(QGraphicsSceneMouseEvent *event){
qDebug() << "release";
emit(clicked());
QGraphicsItem::mouseReleaseEvent(event);
}
To copy to clipboard, switch view to plain text mode
Bookmarks