如何确保QWidget不在屏幕之内?

3
假设我有一个QPushButton,如果我按下按钮,那么我将显示一个QFrame。当按钮靠近屏幕边缘时,一些QFrame的部分无法看到。如何确保QFrame不超出窗口?

你能不能将位置设置为小部件大小的负二倍? - Clearer
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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接