当前位置: 首页 > news >正文

均安公司网站建设深圳有哪些物流公司

均安公司网站建设,深圳有哪些物流公司,做空调的网站,深汕特别合作区面积Qt 无边框窗口在拖动时出现“跟随延迟”是一个常见问题,特别是在 Windows 平台。 主要原因有两个: 事件频率:mouseMoveEvent 的触发频率和系统 vsync 不一致,导致窗口 move() 更新比鼠标略慢。 系统重绘 & 透明窗口&#xff…

Qt 无边框窗口在拖动时出现“跟随延迟”是一个常见问题,特别是在 Windows 平台。
主要原因有两个:

  1. 事件频率mouseMoveEvent 的触发频率和系统 vsync 不一致,导致窗口 move() 更新比鼠标略慢。

  2. 系统重绘 & 透明窗口Qt::FramelessWindowHint + WA_TranslucentBackground 会增加窗口重绘成本。

下面给出几种优化方案,可以叠加使用来显著减轻拖动卡顿。


✅ 方案一:使用 QWindow::startSystemMove(推荐,Qt 5.15+ / Qt 6)

Qt 5.15 引入了 原生系统移动 API,可以调用系统级拖动,完全解决延迟问题。

示例代码下载地址:https://download.csdn.net/download/2501_91893428/91967976

实现方法

 
#include <QWindow>void MainWindow::mousePressEvent(QMouseEvent *event)
{if (event->button() == Qt::LeftButton) {// 触发系统级拖动(Windows/Wayland/Mac均支持)windowHandle()->startSystemMove();event->accept();}
}
  • 优势

    • 由系统接管窗口移动 → 平滑、零延迟。

    • 自动处理最大化区域、拖动到屏幕边缘贴靠等。

  • 注意

    • 只在 Qt 5.15 及以上版本有效。

    • 必须是 FramelessWindowHint 的顶层窗口,并且 鼠标按下后立即调用


✅ 方案二:启用高频鼠标事件

如果因为版本限制无法使用 startSystemMove,可以让 mouseMoveEvent 响应更及时:

 
setMouseTracking(true);              // 开启鼠标追踪
setAttribute(Qt::WA_Hover, true);    // 启用悬停事件

并使用 event->globalPosition()(Qt6)或 globalPos() 直接移动窗口:

 
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{if (event->buttons() & Qt::LeftButton)move(event->globalPosition().toPoint() - m_dragPosition);
}

这比用 frameGeometry() 再计算要稍快一些。


✅ 方案三:降低窗口重绘开销

  • 如果使用了 半透明背景 (WA_TranslucentBackground) 或 QGraphicsDropShadowEffect
    尝试关闭阴影/透明,或用 纯色背景 + 自绘阴影

  • 设置窗口属性:

 
setAttribute(Qt::WA_OpaquePaintEvent);  // 减少透明绘制
setAttribute(Qt::WA_NoSystemBackground);

✅ 方案四:Win32 原生拖动(仅 Windows)

如果你可以使用平台代码,可以直接调用 Win32 API:

 
#include <windows.h>ReleaseCapture();
SendMessage(HWND(winId()), WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);

优点是即使 Qt 版本较旧也能获得系统级平滑拖动。


🔑 推荐组合

Qt版本推荐方案
Qt 6 / Qt 5.15+startSystemMove (最简单最流畅)
Qt 5.9~5.14Win32 ReleaseCapture + SendMessage (Windows)
全平台兼容高频鼠标事件 + 优化重绘

🌟 总结

最佳实践(Qt 5.15+/6):

 
if (event->button() == Qt::LeftButton)windowHandle()->startSystemMove();

让系统接管拖动 → 延迟彻底消失

http://www.dtcms.com/a/568152.html

相关文章:

  • 网站与网页 主页的概念及它们的区别中国歼战斗机
  • 百度打击未备案网站黄浦区网站建设公司
  • 雨人网站建设怎么把wordpress后台设置成中文
  • 网站底部导航制作最新站长seo网站外链发布平台
  • 枣庄手机网站建设网站建设的主要流程步骤
  • 大连做网站优化如何修改上线网站
  • 政法门户网站建设情况公司网站后如何更新
  • 建模素材免费网站中国网创官方网站
  • 音乐应用网站模板多点网络网站制作系统
  • 企业速成网站如何修改网页模版
  • 使用帝国做软件下载网站源码移动网站和定制网站
  • 网站建设 ader济南网站推广排名
  • 网站被别的域名绑定企业网站建设可分为什么层次
  • 蓝色系网站产品网站开发流程图
  • 网站开发知识视频教程为什么别的电脑能打开的网站我的电脑打不开
  • 外包网站多少钱长春 网络公司
  • 微信网站建设公司太原网站建设ty556
  • icp网站 是什么意思燕郊做网站公司
  • 网站建设商务做学校子网站
  • 找外包做网站不给代码天津网站建设制作方案
  • 连锁店 网站建设 中企动力百度cdn wordpress
  • 济南网站建设咨询小七世界500强企业排行榜2023
  • 网站开发专业能力北京建筑职业培训网
  • 高端网站的设计开发公司网站管理系统排名
  • 石做视频网站需要牌照专题网站创意设计与实现
  • 公司网站地图怎么做惠喵WordPress
  • 网站建设相对应的税收分类是莱芜关于网站建设的公司
  • 网站服务器速度慢公司注册网上核名网站
  • 医院网站前置审核北苑网站建设
  • 南宁百度网站推广公司做网站建设价格