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

选择颜色之前的PushButton:

c++ - 是否可以在按钮上绘制彩色矩形?-LMLPHP

选择颜色后的PushButton:

c++ - 是否可以在按钮上绘制彩色矩形?-LMLPHP

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

最佳答案

创建派生自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);
}

c&#43;&#43; - 是否可以在按钮上绘制彩色矩形?-LMLPHP

关于c++ - 是否可以在按钮上绘制彩色矩形?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44873141/

10-15 06:26