graphicsitem.cpp

来自「Linux窗口程序设计__Qt4精彩实例分析上面的源代码第二部分.以循序渐进的方」· C++ 代码 · 共 64 行

CPP
64
字号
#include "graphicsitem.h"
#include <QtGui>

//   Flash Item
FlashItem::FlashItem()
{   
    flash = true;
    setFlag(ItemIsMovable);
    
    startTimer(50);
}

QRectF
FlashItem::boundingRect() const
{
    qreal adjust = 2;
    return QRectF(-10 - adjust, -10 - adjust,
                   43 + adjust, 43 + adjust);
}

void
FlashItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
	
    painter->setPen(Qt::NoPen);
    painter->setBrush(Qt::darkGray);
    painter->drawEllipse(-7,-7,40,40);
    
    painter->setPen(QPen(Qt::black,0));
    painter->setBrush(flash ? (Qt::red):(Qt::yellow));
    painter->drawEllipse(-10,-10,40,40);

}

void
FlashItem::timerEvent(QTimerEvent * )
{
    flash = !flash;
    update();
}


//  Star Item
StarItem::StarItem()
{
    pix.load(":/images/image.png");
}

QRectF
StarItem::boundingRect() const
{
    return QRectF(-pix.width()/2,-pix.height()/2,pix.width(),pix.height());
}

void
StarItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
    painter->drawPixmap(boundingRect().topLeft(),pix);
}




⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?