在Qt中文论坛看到一篇帖子,教大家怎么在窗体中获取指针的坐标。下面是他的源码(原页面找不到了,不过还是谢谢这位坛友):
自己也想学下这个,于是就自己新建了一个Qt Gui工程。结果怎么试都不成功。
他在MainWindow(QWidget *parent)函数中写了这么一句是关键:this->setMouseTracking(true);这句告诉程序自动获取鼠标轨迹。但是我在MainWindow(QWidget *parent)里也写了这句,但就是没用。每次都得点击,程序才会返回坐标。并不是自动获取的。
经过摸索,我发现是Qt Creator新建的工程中包含了QMainWindow、centralWidget、mainToolBar等。所以在MainWindow(QWidget *parent)中直接用“this->setMouseTracking(true);”是不行的。
最简单的方法:我们可以直接在QtDesigner中修改QMainWindow的MouseTracking参数为true。接着修改centralWidget的MouseTracking参数为true。这样当我们将鼠标在centralWidget中晃动的时候,程序就会自动返回指针的坐标了。如果想在其他widget,如mainToolBar,中获取鼠标的坐标,只需将其的MouseTracking参数设为true,即可。
此处注意:QMainWindow的MouseTracking参数一定要为true,否则窗体内的其他MouseTracking参数就没用了。