我想获得框架控件的绝对 x 和 y 坐标。我知道有一个QWidget::mapToGlobal
函数应该给我这些坐标 - 但它总是返回相对点。
我的代码是:
int y = ui->frame->mapToGlobal(ui->frame->window()->pos()).y();
谁能帮我理解我做错了什么?
编辑:发现问题 - 在显示之前,我在主窗口类中调用了这一行。所以现在我的问题是如何获得主窗口将在其构造函数中显示的位置?
我认为你不能,无论如何都不能可靠和便携。该位置尚未确定,并且通常由窗口管理器而不是应用程序做出决定。
所以,你应该做的是覆盖moveEvent()
,resizeEvent()
和/或showEvent()
那些是做这样的事情的正确地方,而不是构造函数。