You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除Qt固定大小主窗口的调整大小光标?

解决Qt固定大小窗口边缘显示调整光标问题

你已经通过setMinimumSize、setMaximumSize和setFixedSize将窗口设为固定大小,但光标移到边缘仍显示调整样式,可通过以下方法解决:

方法一:添加窗口标志(Windows平台适配)

给窗口添加Qt::MSWindowsFixedSizeDialogHint标志,系统会识别窗口为固定大小,自动禁用边缘调整光标:

w.setWindowFlags(w.windowFlags() | Qt::MSWindowsFixedSizeDialogHint);

方法二:重写事件处理(跨平台通用)

在窗口类中重写event方法,拦截光标查询事件,强制设置为箭头光标:

bool MainWindow::event(QEvent *event)
{
    if (event->type() == QEvent::QueryCursor && isFixedSize()) {
        setCursor(Qt::ArrowCursor);
        return true;
    }
    return QMainWindow::event(event);
}

方法三:使用事件过滤器

给窗口安装事件过滤器,监听鼠标悬停移动事件,在边缘时强制切换为箭头光标:

// 在窗口构造函数中安装过滤器
this->installEventFilter(this);

// 实现事件过滤器函数
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
    if (obj == this && event->type() == QEvent::HoverMove && isFixedSize()) {
        setCursor(Qt::ArrowCursor);
        return true;
    }
    return QMainWindow::eventFilter(obj, event);
}

方法一操作最简单,适合Windows平台;若需跨平台兼容,推荐方法二或三。

内容的提问来源于stack exchange,提问作者Shaiful Islam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 23:27:08