首页| 论坛| 消息

标题:【提问】void description(QString &);要在.cpp中定义吗?
作者:gongyh
日期:2005-09-12 17:29
内容:

void description(QString &);要在.cpp中定义吗?
///////////////////
#include
#include
#include
class MouseSensor: public QWidget
{
Q_OBJECT
public:
MouseSensor(QWidget *parent=0,const char *name=0);
private:
void emitDescription(const QString &,QMouseEvent *);
virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseReleaseEvent(QMouseEvent *event);
virtual void mouseDoubleClickEvent(QMouseEvent *event);
virtual void mouseMoveEvent(QMouseEvent *event);
signals:
void description(QString &);
};
#endif
/* mousesensor.cpp */
#include
#include "mousesensor.h"
MouseSensor::MouseSensor(QWidget *parent)
: QWidget(parent)
{
setMinimumSize(300,300);
}
void MouseSensor::mousePressEvent(QMouseEvent *event)
{
emitDescription(QString("Press: "),event);
}
void MouseSensor::mouseReleaseEvent(QMouseEvent *event)
{
emitDescription(QString("Release: "),event);
}
void MouseSensor::mouseDoubleClickEvent(QMouseEvent *event)
{
emitDescription(QString("DoubleClick: "),event);
}
void MouseSensor::mouseMoveEvent(QMouseEvent *event)
{
emitDescription(QString("Move: "),event);
}
void MouseSensor::emitDescription(const QString &typeStr,
QMouseEvent *event)
{
QString btnStr(typeStr);
ButtonState state = event->state();
if(state & ControlButton)
btnStr+= "Ctl-";
if(state & AltButton)
btnStr+= "Alt-";
if(state & ShiftButton)
btnStr+= "Shft-";
if(state & LeftButton)
btnStr += "(Lft)-";
if(state & MidButton)
btnStr += "(Mid)-";
if(state & RightButton)
btnStr += "(Rgt)- ..


#1 [XChinux 09-12 17:31]
不需要。signal不需要
#2 [gongyh 09-12 17:41]
不需要,那能做什么, signal不是也可以看成函数吗,没有定义,功能不是不知道了吗
#3 Re:【提问】void description(QString &);要在.cpp中定义吗 [XChinux 09-12 17:42]
signal不是函数
#4 [gongyh 09-12 17:50]
在这里,什么作用?没有实现体,怎么知道做什么了!
#5 Re:【提问】void description(QString &);要在.cpp中定义吗 [XChinux 09-12 17:53]
信号是需要emit出去供slot接收的。

回复 发表
主题 版块