一个小的简单的游戏引出的心得体?/p>
分解实例
1
实例描述?/p>
实现一个按钮,按钮继承?/p>
QGraphicObject
?/p>
头文件:
class
myButton
:
public
QGraphicsObject
{
Q_OBJECT
public
:
myButton
(
int
,
int
,
QString
,
QString
,
class
MainWindow
*);
QRectF
boundingRect
()
const
;
void
paint
(
QPainter
*,
const
QStyleOptionGraphicsItem
*,
QWidget
*);
protected
:
void
hoverEnterEvent
(
QGraphicsSceneHoverEvent
*)
;
void
hoverLeaveEvent
(
QGraphicsSceneHoverEvent
*)
;
void
mousePressEvent
(
QGraphicsSceneMouseEvent
*);
private
:
QPixmap
pix
;
QString
img
;
QString
hoverImg
;
class
MainWindow
*
m
;
Phonon
::
MediaObject
*
clickMic
;
signals
:
void
clickSig();
};
源文件:
myButton
::
myButton
(
int
x,
int
y,
QString
img,
QString
hoverImg,
class
MainWindow
*
m
){
this
->
img
=img;
this
->
hoverImg
=hoverImg;
pix
.load(img);
setPos(x-
pix
.width()/
2
,y-
pix
.height()/
2
);
this
->
m
=
m
;
setFlags(
QGraphicsItem
::
ItemIsFocusable
);
setFlags(
QGraphicsItem
::
ItemIsMovable
);
setAcceptHoverEvents(
true
);
clickMic
=
Phonon
::createPlayer(
Phonon
::
MusicCategory
,
Phonon
::
MediaSource
(
":/sound/click.mp3"
));
}