2017-07-02 38 views
1

我想从QColorDialog中选择一种颜色后,在PushButton上放置一个矩形(作为预览),并将其颜色更改为我选择的颜色。是否可以在pushButton上绘制彩色矩形?

选择颜色之前按钮:

是否可以得出的一个按钮彩色矩形,

按钮选择颜色后 和我该怎么做(一个例子)?

+0

当然可以。检查按钮的绘画事件并绘制矩形。 – maxik

+0

@maxik:谢谢,但你能给我一个简单的例子或链接解释如何做到这一点? –

+1

看到我的回答:P – eyllanesc

回答

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