• 9877阅读
  • 3回复

virtual void mouseMoveEvent(QMouseEvent *)为什么不是鼠标移动调用此函数 [复制链接]

上一主题 下一主题
离线style
 
只看楼主 倒序阅读 楼主  发表于: 2006-10-13
本人QT3 QT4都测试了。 发现virtual void mouseMoveEvent(QMouseEvent *)这个函数并不会鼠标移动就调过。

反正最少要移动了并且点击了窗口才会调用这个函数。可是文档上说的是移动就调用,谁能解释一下。

我相信我说法的可以测试下面代码。



#include <QWidget>
#include <QMessageBox>
#include <QApplication>
#include <QLabel>
#include <QMouseEvent>
class A:public QWidget
{
  public:
  QLabel *l;
  A()
  {
    l = new QLabel("0", this);
  }
  virtual void mouseMoveEvent(QMouseEvent *);
};
void A::mouseMoveEvent(QMouseEvent *e)
{
  l->setText(QString("x=%1, Y=%2").arg(e->x()).arg(e->y()));
  l->resize(l->sizeHint());
}
int main(int argc, char **argv)
{
  QApplication app(argc, argv);
  A a;
  a.show();
  return app.exec();
}
离线浪漫天使
只看该作者 1楼 发表于: 2006-10-14
tyr setMouseTracking(true);
离线style
只看该作者 2楼 发表于: 2006-10-14
谢谢。
离线cavendish

只看该作者 3楼 发表于: 2006-10-16
快速回复
限100 字节
 
上一个 下一个