窗口位置相对于Qt窗口的屏幕和窗口的宽度和高度

问题描述:

我正在使用Qt 4.8 我试图将鼠标光标绑定到我的应用程序的中心。窗口位置相对于Qt窗口的屏幕和窗口的宽度和高度

如果应用程序是在全屏它与下面的代码

int middleX = QApplication::desktop()->width() >> 1; 
int middleY = QApplication::desktop()->height() >> 1; 

QPoint newMousePos; 
newMousePos.setX(middleX); 
newMousePos.setY(middleY); 
QCursor::setPos(newMousePos); 

和它的作品。

但是,当应用程序不是全屏模式时,我该怎么做? 我尝试了几个网络代码,但我找不到它们的工作。我知道我需要获得窗口的当前几何形状,即当前窗口位置w.r.t.监视器和窗口的宽度和高度。

但是,那些功能是什么?

在此先感谢

+0

不应该将问题重命名为“如何将光标置于我的应用程序的中间”或类似的东西?因为目前问题的标题和正文之间存在不匹配... – dtech 2013-03-19 12:01:25

它所需要的是这样的:

QCursor::setPos(geometry().center()); 

这将使光标在你的应用程序窗口的主要部件的死点,无关大小和窗口的位置屏幕。

+0

哪些头文件需要包含?我得到错误:'.center'的左边必须有class/struct/union – Adorn 2013-03-19 12:05:22

+0

代码示例暗示这是从QWidget对象中调用的。 – vipw 2013-03-19 12:06:49

+0

@Adorn - QWidget引入了'geometry()'方法,并且可用于每个QWidget派生类 - QDialog,QMainWindow和几乎QtWidgets模块中的每个小部件。例如。无论您的应用程序的根视觉表示如何,都调用'geometry()'。 – dtech 2013-03-19 12:07:13