5

QWidget::mapToGlobal当小部件不可见时可以工作吗?我在手册上找不到任何东西。如果它不能为什么?

4

1 回答 1

5

我刚刚编写了一个调用QWidget::mapToGlobal( QPoint( 0,0 ) )隐藏小部件的小程序。我发现我得到的位置是不同的,这取决于在我查询它的位置之前小部件是否已经显示在屏幕上。

QWidget ::mapToGlobal()文档说:

将小部件坐标 pos 转换为全局屏幕坐标。例如, mapToGlobal(QPoint(0,0)) 将给出小部件左上角像素的全局坐标。

读起来,如果小部件不可见,它就不可能在屏幕上具有保证的全局位置,这似乎是合乎逻辑的。

您从调用该方法获得的实际结果似乎取决于小部件最后显示的位置(如果有)。因此,依赖这种行为在当前或未来的 Qt 版本中保持稳定似乎是不明智的。

于 2011-09-13T22:03:55.107 回答