Qt官方自带的例子animatedtiles,该工程存放在Qt安装目录下的
Examples\Qt-XX.XX.XX\widgets\animation\animatedtiles 目录
其中XX.XX.XX为Qt的版本号,如:5.14.1。有如下代码:
class Button : public QGraphicsWidget
{
Q_OBJECT
public:
...... // 该部分代码略,请参见Qt官方自带的例子查看
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *) override
{
bool down = option->state & QStyle::State_Sunken;
QRectF r = boundingRect();
QLinearGradient grad(r.topLeft(), r.bottomRight());
grad.setColorAt(down ? 1 : 0, option->state & QStyle::State_MouseOver ? Qt::white : Qt::lightGray);
grad.setColorAt(down ? 0 : 1, Qt::darkGray);
painter->setPen(Qt::darkGray);
painter->setBrush(grad);
painter->drawEllipse(r);
QLinearGradient grad2(r.topLeft(), r.bottomRight());
grad.setColorAt(down ? 1 : 0, Qt::darkGray);
grad.setColorAt(down ? 0 : 1, Qt::lightGray);

最低0.47元/天 解锁文章
885

被折叠的 条评论
为什么被折叠?



