这个程序的作用是,当鼠标悬停在窗口的右下1/4时,光标处浮出一个tooltip,内容是用户第几次双击窗口。
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMouseEvent>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
int m_iTick;
protected:
void mouseDoubleClickEvent(QMouseEvent *);
bool event(QEvent *event);
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QCoreApplication>
#include <QToolTip>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
setToolTip("");
setToolTipDuration(100);
m_iTick = 0;
}
MainWindow::~MainWindow()
{
}
void MainWindow::mouseDoubleClickEvent(QMouseEvent *e)
{
m_iTick++;
}
bool MainWindow::event(QEvent *event)
{
if(event->type() == QEvent::ToolTip)
{
QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);
if(QRect(width()/2, height()/2, width()/2, height()/2).contains(helpEvent->pos()))
{
QToolTip::showText(helpEvent->globalPos(), QString().setNum(m_iTick)
/*"123\n456\n789"*/);
}
else
{
QToolTip::hideText();
event->ignore();
}
return true;
}
return QWidget::event(event);
}
效果: