3

假设我有一个QPushButton,如果我按下按钮,那么我将显示一个QFrame。当按钮靠近屏幕边缘时,有些部分QFrame是看不到的。如何确定QFrame是窗外的?

4

1 回答 1

3

我希望您通常需要以下检测方法QWidget

bool IsOutOfDesktop(QWidget *w)
{
    QDesktopWidget *desktopWidget = QApplication::desktop();
    QRect screenRect = desktopWidget->screenGeometry(&w);
    QPoint topLeft = w.mapToGlobal(w.geometry().topLeft());
    QPoint bottomRight = w.mapToGlobal(w.geometry().bottomRight());

   if(!screenRect.contains(topLeft) || !screenRect.contains(bottomRight))
        return true;

   return false;
}
于 2012-05-23T10:39:10.320 回答