2015-01-18 2 views
1

Как отключить всплывающие подсказки на Qt4 QToolBar?Как отключить подсказки на QToolbar?

Использование QAction :: setToolTip ("") ничего не делает, и я не могу найти никаких параметров, связанных с отключением всплывающих подсказок на QAction или QToolbar!

Пример:

toolbar.h

#ifndef TOOLBAR_H 
#define TOOLBAR_H 

#include <QtGui> 

class Toolbar : public QToolBar 
{ 
    Q_OBJECT 

public: 
    Toolbar() 
    { 
     QAction *action = this->addAction("Action"); 
     action->setToolTip(""); 
    } 

    bool event(QEvent *event) 
    { 
     if(event->type() == QEvent::ToolTip) 
     { 
      qDebug() << "QEvent::ToolTip"; 
     } 

     return QToolBar::event(event); 
    } 
}; 

#include "moc_Toolbar.cpp" 

#endif // TOOLBAR_H 

main.cpp фильтр

#include <QtGui> 
#include "Toolbar.h" 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 

    QMainWindow window; 
    Toolbar *toolbar = new Toolbar; 

    window.addToolBar(toolbar); 
    window.setCentralWidget(new QWidget()); 

    window.show(); 

    return app.exec(); 
} 

ответ

0

событие должно быть использовано в этом сценарии.

toolbar.h

#ifndef TOOLBAR_H 
#define TOOLBAR_H 

#include <QtGui> 

class Toolbar : public QToolBar 
{ 
    Q_OBJECT 

public: 
    Toolbar() 
    { 
     QAction *action = this->addAction("Action"); 
    } 

    bool eventFilter(QObject *object, QEvent *event) 
    { 
     if(event->type() == QEvent::ToolTip) 
     { 
      return true; 
     } 
     return false; 
    } 
}; 

#include "moc_Toolbar.cpp" 

#endif // TOOLBAR_H 

main.cpp

#include <QtGui> 
#include "Toolbar.h" 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 

    QMainWindow window; 
    Toolbar *toolbar = new Toolbar; 

    qApp->installEventFilter(toolbar); 

    window.addToolBar(toolbar); 
    window.setCentralWidget(new QWidget()); 

    window.show(); 

    return app.exec(); 
} 

Я не совсем уверен, как локализовать это только панель инструментов, но я не люблю всплывающие подсказки в любом случае, так что это быстрый способ отключить их все.

Смежные вопросы