2017-07-02 46 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