Qt编程。。我想自己做个控件,写了如下代码,但是发觉这个控件无论怎么点击也没有响应。。。怎么回事呢。。求助ing。。。不但鼠标事件无响应,就连keyPressEvent也是没有响应的
class diamond : public QGraphicsItem //这是我继承的控件定义,继承自QGraphicsItem
{
public:
diamond(int x,int y,int w,int h,dc_scene *in_scene);
int dx,dy,dw,dh;
void paint(QPainter * painter,const QStyleOptionGraphicsItem *option,QWidget * widget); //paint函数里,我在屏幕上画了个方块,之后试着点击这个方块,毫无反映啊
QRectF boundingRect() const;
dc_scene *scene;
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event); //这块把事件函数声明了
void keyPressEvent ( QKeyEvent * event );
};
下面这是鼠标事件的函数,似乎无论怎么点击,也无法进入这个函数
void diamond::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
scene->addLine(0,0,100,100); //这句话都是没响应的。。。
if(event->button() == Qt::LeftButton) {
scene->clear();
}
else {
QGraphicsItem::mousePressEvent(event);
}
}
怎么回事呢。。。初学Qt的无知小白求解啊啊啊啊T_T
是不是我漏了什么步骤呢?比如修改event()分发事件函数之类的。。求解释。。