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

Qt 悬浮窗实战:无边框窗口与拖拽移动

Qt 悬浮窗实战:无边框窗口与拖拽移动

5分钟学会 Qt 无边框窗口,代码可直接运行


效果展示

一个可拖拽的悬浮窗口,包含三个设备监控卡片,每个都有开关按钮。


核心代码

1. 无边框窗口(3行代码)

cpp

setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); setAttribute(Qt::WA_TranslucentBackground);

2. 鼠标拖拽移动

cpp

void mousePressEvent(QMouseEvent *event) { m_pressed = true; m_dragPoint = event->globalPos() - frameGeometry().topLeft(); } void mouseMoveEvent(QMouseEvent *event) { if (m_pressed) move(event->globalPos() - m_dragPoint); }

3. 右键菜单退出

cpp

void contextMenuEvent(QContextMenuEvent *event) { QMenu menu; menu.addAction("退出", qApp, &QApplication::quit); menu.exec(event->globalPos()); }

核心类结构

cpp

// MiniWidget - 单个监控卡片 class MiniWidget : public QWidget { // 固定大小100x60 // 包含:图标、标题、状态、开关按钮 // 点击按钮发射 toggled(bool) 信号 }; // TripleWidget - 主窗口 class TripleWidget : public QWidget { // 无边框、置顶、可拖拽 // 包含三个 MiniWidget // 右键菜单退出 };

🚀 实现思路

  1. 窗口设置FramelessWindowHint+WA_TranslucentBackground实现无边框透明背景

  2. 拖拽逻辑:记录鼠标按下时的偏移量,移动时重新计算位置

  3. 自定义组件:封装MiniWidget实现可复用的卡片

  4. 右键菜单:重写contextMenuEvent添加退出选项


常见问题

问题解决
拖拽不流畅检查是否用了globalPos()
背景不透明加上setAttribute(Qt::WA_TranslucentBackground)
无法编译确保.proQT += widgets

更多功能

本文只实现了基础框架。完整版还包含:

  • 🎯 贴边隐藏动画

  • 🎯 真实CPU/内存数据

  • 🎯 系统托盘图标

  • 🎯 开机自启动

源码下载链接:QT悬浮监控工具完整源码(无边框+拖拽+贴边隐藏).zip资源-CSDN下载 VIP会员免费下载,包含: - ✅ 完整Qt工程文件(.h/.cpp/.pro) - ✅ 详细中文注释 - ✅ 贴边隐藏动画 - ✅ 鼠标拖拽移动 可直接编译运行 感谢支持!有问题欢迎评论区留言~

如果对你有帮助,欢迎点赞收藏

http://www.cnnetsun.cn/news/1467952.html

相关文章:

  • Android开发者必看:2024年Google Play上架AAB全流程详解(含密钥管理避坑指南)
  • 字节大模型面试必问:RAG检索质量提升技术全解(非常详细),从入门到精通,收藏这一篇就够了!
  • Zemax OpticStudio实战:用多重结构搞定车载镜头-40°C到85°C的MTF漂移难题
  • 从云平台到边缘硬件:手把手教你用Vitis AI 3.0在KV260上部署自定义ResNet18模型
  • QuPath生物图像分析进阶指南:从基础操作到材料科学应用
  • 从RealSense到三维世界:深度相机点云生成的终极实践指南
  • 无代码数据库如何高效构建企业级数据管理系统
  • 三七互娱还是“坑”吗?2026年一线员工实际体验与传闻的真实差距
  • 微软与LinkedIn的生成式AI职业基础课程免费吗?开发者如何利用AI辅助学习
  • 快速上手Ultimate++的编译链接和配置
  • 5步构建企业级视频分享平台后端框架搭建指南
  • ExplorerPatcher完整指南:如何轻松定制Windows界面提升工作效率
  • 像素幻梦创意工坊入门指南:理解16-bit现代UI设计规范与像素艺术复兴运动关联
  • 玩转 UDP 网络编程:从服务端到客户端,揭秘“对等通信”的代码级转换
  • 图解线性代数:矩阵的核(Kernel)和像(Image)到底在画什么?
  • RWKV7-1.5B-G1A开发环境搭建:JDK安装与Java SDK调用指南
  • Fish-Speech-1.5语音合成模型:5分钟快速部署,新手也能轻松上手
  • centos7.9 安装 Firefox
  • LLVM Pass快速入门(三):指令替换
  • MCP采样接口调用流重构预警(仅限首批通过CNCF MCP v2.6认证团队内部披露)
  • Loop:Mac窗口管理的终极免费解决方案,让你的工作效率翻倍 [特殊字符]
  • Kubernetes 生产环境 OOM 告警全链路排查与防护实战
  • AI绘画新选择:LiuJuan Z-Image Generator部署全攻略,从环境搭建到出图实战
  • 建筑领域问题解决进入大模型时代:一站式知识图谱问答方案解析
  • FlowState Lab应用案例:电商销量预测、股票分析等场景实测
  • 重构Minecraft体验:GDLauncher开源启动器的现代化解决方案
  • 基于Phi-3-mini-4k-instruct的MySQL数据库智能查询优化
  • vLLM-v0.17.1入门必看:HuggingFace模型无缝集成与API调用教程
  • 基于python学生宿舍入住报修管理系统vue3
  • ok-ww:让你的鸣潮游戏效率提升3倍的智能自动化伙伴