如何在QToolbar上禁用工具提示



如何在Qt4 QToolBar上禁用工具提示?

使用 QAction::setToolTip(") 什么也没做,我找不到任何与在 QAction 或 QToolbar 上禁用工具提示相关的设置!

例:

工具栏.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

主.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();
}

在此方案中必须使用事件筛选器。

工具栏.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

主.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();
}

不太确定如何将其本地化为工具栏,但无论如何我都不喜欢工具提示,因此这是禁用所有这些工具提示的快速方法。

最新更新