crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в GraphicsSceneHelp
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
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?
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 обрабатывается нормально.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 16:20