2012-05-23 65 views
1

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

+0

无法刚才设置的位置为-2倍的小部件的大小? – Clearer

回答

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; 
} 
+0

这非常有用,非常感谢! – koilin

相关问题