Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Chinese
  4. 求救:installSceneEventFilter与sceneEventFilter捕获消息的问题!sceneEventFilter断点么有被激活!
Forum Updated to NodeBB v4.3 + New Features

求救:installSceneEventFilter与sceneEventFilter捕获消息的问题!sceneEventFilter断点么有被激活!

Scheduled Pinned Locked Moved Chinese
2 Posts 1 Posters 2.9k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 7611534547 Offline
    7611534547 Offline
    761153454
    wrote on last edited by
    #1

    各位大侠:
    请教一个问题,我在sceneEventFilter中设置了断点没有被激活
    使用方法如下:
    class A :public QGraphicsObject
    {
    A()
    {
    QLineF line(.....);
    QGraphicsLineItem* lineSeg = new QGraphicsLineItem(line);

    lineSeg->installSceneEventFilter(this);

                   registerGraphicsItemInScene(lineSeg);
    

    }
    bool sceneEventFilter(QGraphicsItem * watched, QEvent * event)
    {
    QMessageBox msgBox;
    msgBox.setText(_blockItem->name());
    msgBox.exec();
    switch(event->type())
    {
    case QEvent::MouseButtonDblClick:
    return true;
    case QEvent::MouseButtonPress:
    return true;
    case QEvent::MouseButtonRelease:
    return true;
    }

    return QGraphicsItem::sceneEventFilter(watched, event);
    }
    }

    main()
    {
    A a;
    registerGraphicsItemInScene(&a);
    ........

    }

    然后,在测试的过程中,sceneEventFilter根本没有被调用。请问这是什么情况,怎么样能解决啊?

    Qt中国群 :218967017、218967042
    python中国群:133067664

    1 Reply Last reply
    0
    • 7611534547 Offline
      7611534547 Offline
      761153454
      wrote on last edited by
      #2

      class A :public QGraphicsObject
      {
      A()
      { QLineF line(…..);
      QGraphicsLineItem* lineSeg = new QGraphicsLineItem(line);
      lineSeg->installSceneEventFilter(this);
      registerGraphicsItemInScene(lineSeg);
      }
      bool sceneEventFilter(QGraphicsItem * watched, QEvent * event)
      {
      QMessageBox msgBox;
      msgBox.setText(_blockItem->name());
      msgBox.exec();
      switch(event->type())
      {
      case QEvent::MouseButtonDblClick: return true;
      case QEvent::MouseButtonPress: return true;
      case QEvent::MouseButtonRelease: return true; }
      return QGraphicsItem::sceneEventFilter(watched, event); }
      }
      main()
      {
      A a;
      registerGraphicsItemInScene(&a);
      ……..

      }

      Qt中国群 :218967017、218967042
      python中国群:133067664

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved