QWidget提供了获取小部件几何的功能:
QWidget::frameGeometry()
QWidget::geometry()
QWidget::normalGeometry()
但是,当QWidget最大化时(QWidget :: isMaximized()返回true),几何函数提供的矩形具有相同的屏幕坐标(QRect :: x(),QRect :: y())当窗口大小正确时QWidget没有最大化时。有没有办法获得最大化窗口的屏幕坐标?请注意,使用(0,0)不正确,因为可能有一个面板位于屏幕顶部。
如果重要的话,我在CentOS 6.3上使用Qt 4.8。
答案 0 :(得分:2)
解决方案来自查看QWidget的状态(isMaximized,isFullscreen),然后从QDesktopWidget获取几何
QWidget *widget = ...
QRect geom;
if (widget->isMaximized()) {
geom = QApplication::desktop()->availableGeometry()
} else if (widget->isFullScreen()) {
geom = QApplication::desktop()->screenGeometry()
} else {
geom = widget->frameGeometry()
}