Qt Window Dialog 无标题栏 ,无边框,可拖动

1.效果:

2. 主要实现步骤:

设置窗口 flag:

this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);

 创建变量存储位置

QPoint m_dragPosition;

对鼠标左键按下和移动事件做处理

void DraggableDialog::mousePressEvent(QMouseEvent *event)   {isDragging = true;dragPos = event->globalPos() - frameGeometry().topLeft();
}// 鼠标移动事件,实现拖动
void DraggableDialog::mouseMoveEvent(QMouseEvent *event)   {if (isDragging) {move(event->globalPos() - dragPos);}
}// 鼠标释放事件,结束拖动
void DraggableDialog::mouseReleaseEvent(QMouseEvent *event)   {isDragging = false;
}

3 .code:

#ifndef DRAGGABLEDIALOG_H
#define DRAGGABLEDIALOG_H#include <QDialog>
#include <QMouseEvent>
namespace Ui {
class DraggableDialog;
}class DraggableDialog : public QDialog
{Q_OBJECTpublic:explicit DraggableDialog(QWidget *parent = nullptr);~DraggableDialog();protected:// 鼠标按下事件,记录点击位置void mousePressEvent(QMouseEvent *event) override;// 鼠标移动事件,实现拖动void mouseMoveEvent(QMouseEvent *event) override;// 鼠标释放事件,结束拖动void mouseReleaseEvent(QMouseEvent *event) override ;private:bool isDragging;QPoint dragPos;private:Ui::DraggableDialog *ui;
};#endif // DRAGGABLEDIALOG_H

cpp

#include "draggabledialog.h"
#include "ui_draggabledialog.h"DraggableDialog::DraggableDialog(QWidget *parent) :QDialog(parent),ui(new Ui::DraggableDialog)
{ui->setupUi(this);// 设置窗口无边框this->setWindowFlags(Qt::FramelessWindowHint);setToolTip("窗口无边框,可拖动");
}DraggableDialog::~DraggableDialog()
{delete ui;
}
void DraggableDialog::mousePressEvent(QMouseEvent *event)   {isDragging = true;dragPos = event->globalPos() - frameGeometry().topLeft();
}// 鼠标移动事件,实现拖动
void DraggableDialog::mouseMoveEvent(QMouseEvent *event)   {if (isDragging) {move(event->globalPos() - dragPos);}
}// 鼠标释放事件,结束拖动
void DraggableDialog::mouseReleaseEvent(QMouseEvent *event)   {isDragging = false;
}

main

int main(int argc, char *argv[]) {QApplication app(argc, argv);DraggableDialog dialog;dialog.show();return app.exec();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/22316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 集合中的组内平均值计算

在Java开发中&#xff0c;集合&#xff08;Collection&#xff09;是一个重要的数据结构&#xff0c;广泛应用于各种场景。计算集合中的组内平均值是一个常见的操作&#xff0c;尤其是在数据分析、统计和处理时更为重要。本文将深入探讨如何使用Java来计算集合中的组内平均值&a…

Web 页面性能衡量指标-以用户为中心的效果指标

Web 页面性能衡量指标-以用户为中心的性能指标 以用户为中心的性能指标是理解和改进站点体验的关键点 一、以用户为中心的性能指标 1. 指标是用来干啥的&#xff1f; 指标是用来衡量性能和用户体验的 2. 指标类型 感知加载速度&#xff1a;网页可以多快地加载网页中的所有…

如何在vs code中安装JavaFX

目录 下载JavaFX 配置vs code工程 编写测试代码 下载JavaFX 网站链接:https://openjfx.io 选择如下的版本

从1.0到4.0,看看你公司的费控模式是第几代?

早在2021年9月&#xff0c;艾媒咨询在《2021H1企业费控报销服务专题研究报告》中&#xff0c;第一次对企业费用管控模式的进化历程进行了清晰的划代&#xff1a;1.0手工模式、2.0网报模式、3.0移动报销模式、4.0智能费控模式。 2022年&#xff0c;在《中国企业费用管理发展白皮…

vr样板房实景漫游展示制作解决了地产商难题

家具和软装销售中&#xff0c;如何直观展示产品优势一直是老板们的难题。口头描述往往难以让客户真正感受到产品的独特之处&#xff0c;这不仅影响了销售效果&#xff0c;也增加了沟通的难度。但现在&#xff0c;我们有了全新的解决方案——样板房VR全景编辑软件! 样板房VR全景…

精打细算:可燃气体报警器检验收费的合理规划与管理

随着工业化的快速发展&#xff0c;可燃气体报警器已经成为各类工业场所不可或缺的安全设备。 它的主要功能是在可燃气体浓度超标时发出警报&#xff0c;有效预防和减少火灾、爆炸等安全事故的发生。 然而&#xff0c;为了确保报警器能够持续、准确地发挥作用&#xff0c;定期…

科技盛事即将拉开帷幕,WWDC2024官宣定档,亮点抢先看!

随着全球科技爱好者们对苹果年度开发者大会&#xff08;WWDC&#xff09;的期待日益高涨&#xff0c;今年的WWDC24&#xff08;苹果全球开发者大会&#xff09;&#xff0c;正式宣告这一科技盛事将于北京时间6月11日凌晨1点拉开帷幕。距离WWDC 2024的召开只剩下一周时间&#x…

【电子取证篇】电子数据取证标准合集更新202405(附下载)

【电子取证篇】电子数据取证标准合集更新202405&#xff08;附下载&#xff09; 电子数据取证相关标准合集&#xff0c;按照司法鉴定职业分类目录&#xff0c;对电子数据鉴定可能涉及的测试、测量方法进行标准归类&#xff0c;更新于2024年05月14日—【蘇小沐】 &#xff08;…

前端localForage存储数据使用教程

前言 前端本地化存储算是一个老生常谈的话题了&#xff0c;我们对于 cookies、Web Storage&#xff08;sessionStorage、localStorage&#xff09;的使用已经非常熟悉&#xff0c;在面试与实际操作之中也会经常遇到相关的问题&#xff0c;但这些本地化存储的方式还存在一些缺陷…

「技能培训」硬蛋学堂职业技能培训,助你掌握未来技术!!!

硬蛋学堂职业技能培训 &#x1f680; 火热报名中&#xff01; &#x1f680; &#x1f31f; 2024年已过半&#xff0c;我们迎来了年中的转折点。你是否还在为年初制定的宏伟计划而奋斗&#xff1f;是否渴望在职场上更进一步&#xff0c;却苦于缺乏机会和资源&#xff1f; &a…

systemctl系统控制器

systemctl系统控制器 作用&#xff1a;控制服务的开启、关闭、开机自启、禁止开机自启 查看linux中所有的服务 systemctl --type service 检查服务状态 systemctl is-active 服务名 &#xff08;简要&#xff09;systemctl status 服务名&#xff08;详情&#xff09; 开…

期权懂题库免费!期权开户测试难吗?多少分算合格通过?

今天带你了解期权懂题库免费&#xff01;期权开户测试难吗&#xff1f;多少分算合格通过&#xff1f;期权开户测试通常要求投资者达到一定的合格分数&#xff0c;以确保他们具备足够的理解和知识来参与期权交易。 期权开户测试难吗&#xff1f; 期权开户测试的难度因人而异&am…

【设计模式深度剖析】【1】【行为型】【模板方法模式】| 以烹饪过程为例加深理解

&#x1f448;️上一篇:结构型设计模式对比 文章目录 模板方法模式定义英文原话直译如何理解呢&#xff1f; 2个角色类图代码示例 应用优点缺点使用场景 示例解析&#xff1a;以烹饪过程为例类图代码示例 模板方法模式 模板方法模式&#xff08;Template Method Pattern&…

C++linux下使用clog和重定向实现写日志

Clinux下使用clog和重定向实现写日志 实现文件基本功能测试编译运行额外知识点 实现文件 LogUtil.hpp /** * 通用日志实现 * lsl * 2024-06-04 */#ifndef LOGUTIL_HPP #define LOGUTIL_HPP #include<iostream> #include <time.h> #include <cstring> #defi…

LED驱动IC:HC2161,升压型LED恒流驱动ic,供应LED灯杯单节电池以上供电的LED灯串平板显示LED背光大功率LED照明

LED驱动IC&#xff1a; HC2161:升压型LED恒流驱动ic 概述&#xff1a;HC2161是一款高效率、高精度的升 压型大功率LED恒流驱动控制芯片。 HC2161内置高精度误差放大器&#xff0c;固 定关断时间控制电路&#xff0c;恒流驱动电路等&#xff0c; 特别适合大功率、多个高亮…

七年

七年 我&#xff0c;回来了&#xff0c;七年后。回看之前的文章&#xff0c;当初的情意浓浓&#xff0c;患得患失&#xff0c;真的是恍如隔世。 经历了重重波折&#xff0c;父母反对&#xff0c;奔赴广州&#xff0c;云南危机&#xff0c;房名危机&#xff0c;都没把我们拆散…

鸿蒙开发接口定制管理:【@ohos.configPolicy (配置策略)】

配置策略 配置策略提供按预先定义的定制配置层级获取对应定制配置目录和文件路径的能力。 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 本模块接口均为系统接口&#xff0c;三方应用不支持调…

Kaggle平台进行Python版本降级

前言 最近在复现语音合成模型VITS&#xff0c;由于目前没有算力故去Kaggle白嫖运算资源。 VITS的运行环境要求如下 Cython0.29.21 librosa0.8.0 matplotlib3.3.1 numpy1.18.5 phonemizer2.2.1 scipy1.5.2 tensorboard2.3.0 torch1.6.0 torchvision0.7.0 Unidecode1.1.1截至2…

21.过拟合和欠拟合示例

1. 背景介绍 在机器学习和深度学习中&#xff0c;过拟合和欠拟合是两个非常重要的概念。过拟合指的是模型在训练数据上表现很好&#xff0c;但在新的测试数据上效果变差的情况。欠拟合则是指模型无法很好地拟合训练数据的情况。这两种情况都会导致模型无法很好地泛化&#xff…

视频号小店,常见的违规条例!98%的商家必犯的违规细节!

哈喽~我是电商月月 做电商&#xff0c;不管哪个平台都有属于自己的规则条例&#xff0c;这些违规细节&#xff0c;一定要提前了解 所以今天&#xff0c;月月就给大家分享一下&#xff0c;做视频号小店的话&#xff0c;有哪些常见的违规细节 这里我们分三点讲解 一&#xff…