【问题标题】:C++ Qt window positioningC++ Qt 窗口定位
【发布时间】:2011-07-01 22:09:13
【问题描述】:

Qt 是否可以提供类似工具提示的窗口的定位? (或者实际上是任何类型的窗口/小部件)。

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

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

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

【问题讨论】:

    标签: c++ qt window tooltip


    【解决方案1】:

    我不知道 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());
        }
    }
    

    【讨论】:

    • 这很好,我不知道::availableGeometry方法。
    猜你喜欢
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多