是否可以在pushButton上绘制彩色矩形?

时间:2017-07-02 16:54:55

标签: c++ qt qt5

我想在从QColorDialog中选择颜色后,在PushButton上放置一个矩形(作为预览)并将其颜色更改为我选择的颜色。

选择颜色前的PushButton:

选择颜色后的PushButton:

是否可以在pushButton上绘制彩色矩形,
我该怎么做(一个例子)?

1 个答案:

答案 0 :(得分:2)

创建源自QPushButton的自定义类,例如:

<强> pushbutton.h

#ifndef PUSHBUTTON_H
#define PUSHBUTTON_H

#include <QPushButton>

class PushButton : public QPushButton
{
public:
    PushButton(QWidget*parent=0);

protected:
    void paintEvent(QPaintEvent *event);
};

#endif // PUSHBUTTON_H

<强> pushbutton.cpp

#include "pushbutton.h"
#include <QPainter>

PushButton::PushButton(QWidget *parent):QPushButton(parent)
{
}

void PushButton::paintEvent(QPaintEvent *event)
{
    QPushButton::paintEvent(event);
    QRect r(0, 0, width()/3, height());
    r.moveTo(rect().center()-r.center());
    QPainter painter(this);
    painter.setBrush(Qt::red);
    painter.drawRect(r);
}

enter image description here