当小部件不可见时,QWidget::mapToGlobal
可以工作吗?我在手册上什么也没找到。
我刚刚写了一个小程序,在一个隐藏的小部件上调用QWidget::mapToGlobal( QPoint( 0,0 ) )
。我发现我得到的位置是不同的,这取决于小部件在我查询它的位置之前是否已经显示在屏幕上。
QWidget::mapToGlobal()文档说:
将小部件坐标转换为全局屏幕坐标。例如,mapToGlobal(QPoint(0,0))将给出小部件左上角像素的全局坐标。
读到这里,如果小部件不可见,它就不可能在屏幕上有一个保证的全局位置,这似乎是合乎逻辑的。
调用该方法得到的实际结果似乎取决于小部件最后显示的位置(如果有的话)。因此,依赖这种行为在当前或未来的Qt版本中保持稳定似乎是不明智的。