当前位置: 代码迷 >> QT开发 >> QGraphicsItem未响应鼠标点击事件解决办法
  详细解决方案

QGraphicsItem未响应鼠标点击事件解决办法

热度:110   发布时间:2016-04-25 03:26:26.0
QGraphicsItem未响应鼠标点击事件
头文件


public:
    explicit myItem();
    QRectF boundingRect()const;
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
    void mousePressEvent(QGraphicsSceneMouseEvent *event);


.cpp

myItem::myItem()
{
   brush=new QBrush(Qt::red);
   setFlag(QGraphicsItem::ItemIsFocusable);
}
void myItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
    setFocus();
brush->setColor(Qt::blue);
}



main

    QApplication a(argc, argv);
    myItem t;
    QGraphicsScene w;
    w.addItem(&t);
    QGraphicsView v;
    v.setScene(&w);
    v.show();

每次点击Item都无反应 基本可以确定是没有响应鼠标点击事件 怎么解决 
有没有帖子可以讲解一下scene和item的事件传递过程 Qt自带的帮助不太理解
------解决方案--------------------
mousePressEvent里面的代码本身就不能使item有什么变化,建议加一句打印信息看看有没有进入该函数
------解决方案--------------------
不写setFocus();
写其他容易引起变化的语句,如楼上所述写一些输出控制台的语句,这样看更明显一些。另外brush->setColor(Qt::blue);没有意义。
  相关解决方案