Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: GraphicsSceneHelp
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
igor_bogomolov
Не могу отловить появление 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
Тема всё ещё актуальна. Нужно перехватывать появление 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?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.