LINUX.ORG.RU

Qt4.8 окрашивание половины кнопки

 , , ,


0

1

Необходимо окрашивание одной кнопки разным цветом (верхней и нижней половины). Пытаемся использовать qlineargradient, но описаний про его использование нет нигде, поэтому не всё получается. Может быть есть другой, более простой способ???


не всё получается

Что именно не получается то?

описаний нет нигде

https://doc.qt.io/archives/qt-4.8/qlineargradient.html

У Шлее есть трактовка документации, про рисование градиента там тоже есть

#ifndef BTN_H
#define BTN_H

#include <QPushButton>
#include <QLinearGradient>
#include <QPainter>

class Btn : public QPushButton {
public:
    Btn(QWidget *parent = nullptr);

protected:
    void paintEvent(QPaintEvent *e) override;
};

#endif
#include <btn.h>

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

void Btn::paintEvent(QPaintEvent *e)
{
    QPainter p(this);
    
    QLinearGradient grad(width()/2, 0, width()/2, height());
    grad.setColorAt(0, Qt::red);
    grad.setColorAt(1, Qt::green);

    p.setBrush(grad);
    p.drawRect(rect());
}
Rot1
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.