繁体   English   中英

C ++ Qt窗口定位

[英]C++ Qt window positioning

Qt是否可以为工具提示式窗口的定位提供一些帮助? (或实际上任何类型的Windows /小部件)。

我希望能够自动更新窗口的位置,以便它始终停留在屏幕上 (或至少尽可能地适合它)。

在通知区域的标准Windows工具提示中可以看到我想要的行为的示例。 如果工具提示很大,并且它的某些部分不在屏幕上 ,它将自动重新定位。

显然,我可以自己编写代码,但是我正在寻找已经编写的东西。

我不知道Qt是否具有确保单个控件完全在屏幕内部的单个功能。 但是使用QDesktopWidget可能很简单。

void function RestrainWidgetToScreen(QWidget * w)
{
    QRect screenRect = QDesktopWidget::availableGeometry(w);
    if(w->frameGeometry().left() < screenRect.left()) {
        w->move(screenRect.left() - w->frameGeometry().left(), 0);
    } else if(w->frameGeometry().right() > screenRect.right()) {
        w->move(screenRect.right() - w->frameGeometry().right(), 0);
    }
    if(w->frameGeometry().top() < screenRect.top()) {
        w->move(0, screenRect.top() - w->frameGeometry().top());
    } else if(w->frameGeometry().bottom() < screenRect.bottom()) {
        w->move(0, screenRect.bottom() - w->frameGeometry().bottom());
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM