如何确保QWidget不在屏幕上?

时间:2012-05-23 10:07:30

标签: qt

假设我有QPushButton,如果按下按钮,我会显示QFrame。当按钮靠近屏幕边缘时,无法看到QFrame的某些部分。如何确保QFrame窗外?

1 个答案:

答案 0 :(得分:1)

我希望您一般需要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;
}
相关问题