Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Система рисования. Печать _ GraphicsSceneHelp

Автор: igor_bogomolov 13.4.2010, 12:59

Не могу отловить появление ToolTip на графической сцене.

bool ConvergateItem::sceneEventFilter(QGraphicsItem * watched, QEvent * event)
{
        switch (event->type()) {
        case QEvent::GraphicsSceneHoverEnter:
            qDebug() << "Enter";
            return false;
        case QEvent::GraphicsSceneHoverLeave:
            qDebug() << "Leave";
            return false;
        case QEvent::GraphicsSceneHelp:
            qDebug() << "О это чудо!!!";
            return false;
        case QEvent::ToolTip:
            qDebug() << "О это чудо!!!";
            return false;
        default:
            return false;
        }
}

Кто-нибудь делал подобное?
З,Ы, Hover обрабатывается нормально.

Автор: igor_bogomolov 17.6.2010, 9:17

Тема всё ещё актуальна. Нужно перехватывать появление ToolTip

Есть составной графический элемент вида

Раскрывающийся текст
class ConvergateItem : public QObject, public QGraphicsItemGroup
{
    Q_OBJECT
    Q_DISABLE_COPY(ConvergateItem)
   ...
protected:
    bool sceneEventFilter (QGraphicsItem * watched, QEvent * event);

private:
    ShdslPortGraphicsItem  * shdslport[16];
    UplinkPortGraphicsItem * uplinkports[2];
};

ShdslPortGraphicsItem и UplinkPortGraphicsItem унаследованы от QObject и QGraphicsItem. Устанавливаю для них всплывающую подсказку setToolTip(QLatin1String("test tool tip"));. Теперь необходимо отловить её появление. Сделать это нужно либо в самих классах ShdslPortGraphicsItem иил UplinkPortGraphicsItem, либо в ConvergateItem. Пытаюсь это сделать через фильтр событий
Раскрывающийся текст
bool ConvergateItem::sceneEventFilter(QGraphicsItem * watched, QEvent * event)
{
     qDebug() << event->type();

    switch (event->type()) {
        case QEvent::GraphicsSceneHoverEnter:
            qDebug("GraphicsSceneHoverEnter");
            return false;
        case QEvent::GraphicsSceneHoverLeave:
            qDebug("GraphicsSceneHoverLeave");
            return false;
        case QEvent::GraphicsSceneHelp:
            qDebug("GraphicsSceneHelp");
            return false;
        case QEvent::ToolTip:
            qDebug("ToolTip");
            return false;
        default:
            return false;
    }
}

Ничего не получается :(
Как отловить появление ToolTip?

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)