#include "GraphicsButtonIcon.h"
#include <QDebug>
/**************************************************************************
* 常量 *
**************************************************************************/
/**************************************************************************
* 宏 *
**************************************************************************/
/**************************************************************************
* 数据类型 *
**************************************************************************/
/**************************************************************************
* 全局变量 *
**************************************************************************/
/**************************************************************************
* 局部函数原型 *
**************************************************************************/
/**************************************************************************
* 类GraphicsButtonIcon实现--公有部分 *
**************************************************************************/
/**************************************************************************
* 函数名称: GraphicsButtonIcon
* 功能描述: 构造函数
* 访问的表:
* 修改的表:
* 输入参数:
* 输出参数:
* 返 回 值:
* 其它说明:
* 修改日期 版本号 修改人 修改内容
* -----------------------------------------------
*
**************************************************************************/
GraphicsButtonIcon::GraphicsButtonIcon(QGraphicsItem *parent)
:QGraphicsPixmapItem(parent)
{
this->setCacheMode(QGraphicsItem::ItemCoordinateCache);
//设置其可以接收焦点
this->setFlags( QGraphicsItem::ItemIsFocusable );
this->setFocus( ) ; //设置其初始为焦点
this->setAcceptsHoverEvents( true );
this->setShapeMode( QGraphicsPixmapItem::BoundingRectShape );
}
/***********************************************************************
* 函数名称: ~GraphicsButtonIcon()
* 功能描述: 析构函数
* 访问的表:
* 修改的表:
* 输入参数:
* 输出参数:
* 返 回 值:
* 其它说明:
* 修改日期 版本号 修改人 修改内容
* -----------------------------------------------
*
*************************************************************************/
GraphicsButtonIcon::~GraphicsButtonIcon()
{
}
void GraphicsButtonIcon::setScene(QGraphicsScene *scene)
{
m_Scene = scene ;
buttonPixmap = QPixmap(":/images/button.bmp") ;
//一张大图包括5个小图,所以计算宽度时要除以5
pixWidth = buttonPixmap.width() / 5 ;
pixHeight = buttonPixmap.height() ;
//默认的情况下是正常显示
this->setPixmap( getButtonStatePixmap( Normal ) );
//因为不是所有的Button都在同一层,所以不能在这里Z轴值
m_Scene->addItem( this );
}
inline QPixmap GraphicsButtonIcon::getButtonStatePixmap(ButtonState state)
{
Q_ASSERT( !buttonPixmap.isNull() ) ;
return buttonPixmap.copy( state*pixWidth,0,pixWidth,pixHeight );
}
void GraphicsButtonIcon::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
Q_UNUSED( event ) ;
qDebug() << "GraphicsButtonIcon::hoverEnterEvent" ;
this->setPixmap( getButtonStatePixmap( Actived ) );
QGraphicsItem::hoverEnterEvent( event ) ;
}
void GraphicsButtonIcon::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
Q_UNUSED( event ) ;
qDebug() << "GraphicsButtonIcon::hoverLeaveEvent" ;
this->setPixmap( getButtonStatePixmap( Normal ) );
QGraphicsItem::hoverLeaveEvent( event ) ;
}
void GraphicsButtonIcon::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
Q_UNUSED( event ) ;
qDebug() << "GraphicsButtonIcon::mousePressEvent" ;
this->setPixmap( getButtonStatePixmap( Pressed ) );
QGraphicsItem::mousePressEvent( event ) ;
}
void GraphicsButtonIcon::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
Q_UNUSED( event ) ;
qDebug() << "GraphicsButtonIcon::mouseReleaseEvent" ;
this->setPixmap( getButtonStatePixmap( Normal ) );
QGraphicsItem::mouseReleaseEvent( event ) ;
}
Qt 基于QGraphicsItem类重载鼠标事件函数的教训
5星 · 超过95%的资源 需积分: 44 120 浏览量
2011-12-19
14:49:31
上传
评论 3
收藏 46KB GZ 举报
谢健
- 粉丝: 126
- 资源: 34
最新资源
- 高德地图AMap-adcode-citycode
- 123111111111111
- PDF加密转APK大师1.0.0(解压密码1234)
- ProSP3.CD-ROM.iso
- 六一儿童节主题-少儿编程教学-scratch游戏demo设计
- main.m
- 基于Python.Numpy实现BP卷积神经网络识别手写数字源码(含超详细注释+使用说明).zip
- 个人 ACM 的 Wiki的静态网站.zip
- 基于Python.Numpy实现BP卷积神经网络识别手写数字源码(含超详细注释+使用说明).zip
- opencv4.8.0-opencv4.9.0-opencv-contrib4.8.0-opencv-contrib4.9.0
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
- 6
前往页