2017-07-02 1 views
1

Ich möchte nach der Auswahl einer Farbe aus dem QColorDialog ein Rechteck (als Vorschau) auf den PushButton und ändern Sie die Farbe auf die Farbe, die ich gewählt habe.Ist es möglich, ein farbiges Rechteck auf einem PushButton zu zeichnen?

Der Druckknopf vor der Farbe der Wahl:

den Druckknopf nach der Farbe der Wahl:

Ist es möglich, ein farbiges Rechteck auf einem Druckknopf zu ziehen,
und wie kann ich das (ein Beispiel)?

+0

Sicher ist es. Überprüfen Sie das Paint-Ereignis der Schaltfläche und zeichnen Sie das Rechteck. – maxik

+0

@maxik: Danke, aber können Sie mir ein einfaches Beispiel oder einen Link erklären, wie das geht? –

+1

sehe meine Antwort: P – eyllanesc

Antwort

2

benutzerdefinierte Klasse Erstellen von QPushButton abgeleitet, zum Beispiel:

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

Verwandte Themen