gpt4 book ai didi

C++ Qt 窗口定位

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:13:12 26 4
gpt4 key购买 nike

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

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

我想要的行为示例可以在通知区域的标准 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());
}
}

关于C++ Qt 窗口定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5077205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com