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

Qt不规则可移动窗体的实现

实现:

        可以借助不规则的位图来实现不规则窗体,并支持拖动和移动。下面分别是头文件和源文件

#ifndef SHAPEWIDGET_H
#define SHAPEWIDGET_H#include <QWidget>class ShapeWidget : public QWidget
{Q_OBJECTpublic:ShapeWidget(QWidget *parent = 0);~ShapeWidget();
protected:void mousePressEvent(QMouseEvent *);void mouseMoveEvent(QMouseEvent *);void paintEvent(QPaintEvent *);
private:QPoint dragPosition;
};#endif // SHAPEWIDGET_H
#include "shapewidget.h"
#include <QMouseEvent>
#include <QPainter>
#include <QPixmap>
#include <QBitmap>ShapeWidget::ShapeWidget(QWidget *parent): QWidget(parent)
{QPixmap pix;pix.load("16.png",0,Qt::AvoidDither|Qt::ThresholdDither|Qt::ThresholdAlphaDither);resize(pix.size());setMask(QBitmap(pix.mask()));setWindowFlag(Qt::FramelessWindowHint);
}ShapeWidget::~ShapeWidget()
{}void ShapeWidget::mousePressEvent(QMouseEvent *event)
{if(event->button()==Qt::LeftButton){dragPosition =event->globalPos()-frameGeometry().topLeft();event->accept();}if(event->button()==Qt::RightButton){close();}
}void ShapeWidget::mouseMoveEvent(QMouseEvent *event)
{if(event->buttons()&Qt::LeftButton){move(event->globalPos()-dragPosition);event->accept();}
}void ShapeWidget::paintEvent(QPaintEvent *event)
{QPainter painter(this);painter.drawPixmap(0,0,QPixmap("16.png"));
}

相关文章:

Qt不规则可移动窗体的实现

实现&#xff1a; 可以借助不规则的位图来实现不规则窗体&#xff0c;并支持拖动和移动。下面分别是头文件和源文件 #ifndef SHAPEWIDGET_H #define SHAPEWIDGET_H#include <QWidget>class ShapeWidget : public QWidget {Q_OBJECTpublic:ShapeWidget(QWidget *parent …...

Jakarta Bean Validation

Validation 官网 https://beanvalidation.org/ 常见注解 Bean Validation中定义的注解&#xff1a; 注解详细信息Null被注释的元素必须为 nullNotNull被注释的元素必须不为 nullAssertTrue被注释的元素必须为 trueAssertFalse被注释的元素必须为 falseMin(value)被注释的元素…...

Flink Catalog 解读与同步 Hudi 表元数据的最佳实践

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…...

git 使用总结

文章目录 git merge 和 git rebasegit mergegit rebase总结 git merge 和 git rebase git merge git merge 最终效果说明&#xff1a; 假设有一个仓库情况如下&#xff0c;现需要进行 merge&#xff1a; merge 操作流程&#xff1a; merge 的回退操作&#xff1a; git reba…...

【Elasticsearch专栏 01】深入探索:Elasticsearch的正向索引和倒排索引是什么

文章目录 什么是Elasticsearch的正向索引和倒排索引&#xff1f;1.倒排索引&#xff08;Inverted Index&#xff09;2.正向索引&#xff08;Forward Index&#xff09;3.小结 什么是Elasticsearch的正向索引和倒排索引&#xff1f; 首先&#xff0c;要明确的是&#xff0c;Ela…...

Linux、Ubuntu、CenterOS、RedHat、Debian、AIpine关系和区别?

目录 1. 区别和联系 2. 安装命令 3. 其他发行版本 4. 拓展知识 Linux 内核和操作系统发行版的关系-CSDN博客 5.参考 1. 区别和联系 Ubuntu, Debian, RedHat, CentOS都是不同的Linux发行版。 Ubuntu 是基于Debian的一个开源GNU/Linux操作系统。它的目标是为一般用户提供…...

微信小程序开发:通过wx.login()获取用户唯一标识openid和unionid

下面代码展示了 openid 的获取过程。 想获取 unionid 需要满足条件&#xff1a;小程序已绑定到微信开放平台账号下&#xff0c;不然只会返回 openid。 【相关文档】 微信小程序开发&#xff1a;appid 和 secret 的获取方法 wx.login({success (res) {if (res.code) {// 发起网…...

设计模式之模板方法

模式定义 定义一个操作中的算法的骨架 (稳定)&#xff0c;而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override 重写)该算法的某些特定步骤。 …...

Tubi 故事|中国团队本地管理队伍的形成

当一支团队在公司核心业务中发挥着越来越重要的作用&#xff0c;他们将会获得更多资源以支持团队的发展并在核心业务中持续贡献。相应地&#xff0c;公司也需要投入更多的精力去管理这支规模日渐壮大的团队&#xff0c;尤其当这支远程团队与公司总部在地理和文化上有明显差异时…...

微服务篇之任务调度

一、xxl-job的作用 1. 解决集群任务的重复执行问题。 2. cron表达式定义灵活。 3. 定时任务失败了&#xff0c;重试和统计。 4. 任务量大&#xff0c;分片执行。 二、xxl-job路由策略 1. FIRST&#xff08;第一个&#xff09;&#xff1a;固定选择第一个机器。 2. LAST&#x…...

提取游戏音频文件.bnk

提取游戏音频文件.bnk 什么是.bnk准备Wwise-Unpacker工具使用Wwise-Unpacker工具总结 什么是.bnk .bnk其实是一种对音频的加密方式&#xff0c;一个.bnk文件中通常包含了多个语音文件&#xff0c;一般可以使用Wwise-Unpacker来解码.bnk格式文件 准备Wwise-Unpacker工具 Wwis…...

React 模态框的设计(三)拖动组件的完善

我在上次的Draggable组件的设计中给了一个简化的方法&#xff0c;今天我来完善一下这个组件&#xff0c;可用于任何可移动组件的包裹。完善后的效果如下所示&#xff1a; 这个优化中&#xff0c;增加了一个注目的效果&#xff0c;还增加了触发可拖动区域的指定功能&#xff0c;…...

wondows10用Electron打包threejs的项目记录

背景 电脑是用的mac&#xff0c;安装了parallels desktop ,想用electron 想同时打包出 苹果版本和windows版本。因为是在虚拟机里安装&#xff0c;它常被我重装&#xff0c;所以记录一下打包的整个过程。另外就是node生态太活跃&#xff0c;几个依赖没记录具体版本&#xff0…...

git的master、develop、feature分支分别是做什么用的?有什么区别和联系?

在Git版本控制系统中&#xff0c;master、develop和feature分支都是常用的分支类型&#xff0c;它们有不同的用途和特点。 master分支&#xff1a;master分支是Git默认的主分支&#xff0c;它包含了项目的稳定版本。通常&#xff0c;master分支用于发布正式版本&#xff0c;即经…...

前端基础面试题

摘要&#xff1a;最近&#xff0c;看了下慕课2周刷完n道面试题&#xff0c;记录下... 1.请说明Ajax、Fetch、Axios三者的区别 三者都用于网络请求&#xff0c;但维度不同&#xff1a; Ajax&#xff08;Asynchronous Javascript ang XML&#xff09;&#xff0c;是一种在不重新…...

docker自定义网络实现容器之间的通信

Background docker原理 docker是一个Client-Server结构的系统&#xff0c;Docker的守护进程运行在主机上。通过Socket从客户端访问。docker核心三大组件&#xff1a;image–镜像、container-容器、 repository-仓库。docker使用的cpu、内存以及系统内核等资源都是直接使用宿主…...

NLP_构建GPT模型并完成文本生成任务

文章目录 搭建GPT模型&#xff08;解码器&#xff09;构建文本生成任务的数据集训练过程中的自回归文本生成中的自回归&#xff08;贪婪搜索&#xff09;完整代码小结 搭建GPT模型&#xff08;解码器&#xff09; GPT 只使用了 Transformer的解码器部分&#xff0c;其关键组件…...

使用puppeteer完成监听浏览器下载文件并保存到自己本地或服务器上完成上传功能

需求场景 获取网站点击的下载pdf&#xff0c;并把pdf重命名再上传到COS云上面 技术使用 “puppeteer”: “^19.7.2”, “egg”: “^3.15.0”, // 服务期用egg搭的 文件服务使用COS腾讯云 核心思路 获取浏览器下载事件&#xff0c;并把文件保存到本地 const session awai…...

软件压力测试:测试方法与步骤详解

随着软件应用的不断发展&#xff0c;用户对系统性能的要求也逐渐提高。在不同的负载条件下&#xff0c;系统必须能够保持稳定、高效的运行。软件压力测试是一种验证系统在各种负载情况下性能表现的关键手段。本文将详细探讨软件压力测试的方法和步骤。 1. 明确测试目标 在进行压…...

Oerlikon欧瑞康LPCVD system操作使用说明

Oerlikon欧瑞康LPCVD system操作使用说明...

5步掌握碧蓝航线Live2D资源提取完整教程

5步掌握碧蓝航线Live2D资源提取完整教程 【免费下载链接】AzurLaneLive2DExtract OBSOLETE - see readme / 碧蓝航线Live2D提取 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneLive2DExtract 你是否曾经被碧蓝航线中精美的Live2D角色动画所吸引&#xff0c;却苦…...

[具身智能-791]:NAV2 全局规划层 A*算法的本质是距离最短,而不是时间最短算法

核心定论A 算法本质&#xff1a;优先求解几何物理距离最短路径&#xff0c;天生不是「通行耗时最短」算法*一、直白区分A 追求目标*以栅格空间长度为核心权重&#xff0c;算出纯路程最短的路线&#xff0c;只看走了多少米&#xff0c;不看好不好走、堵不堵、快慢如何。时间最短…...

coze 实战:萌宠摆摊视频工作流,一键自动生成趣味短片

大家吼&#xff0c;我是专注于AI的睡醒了叭&#xff01; 我不是高手&#xff0c;但是想和大家分享自己学到的好玩好用的工作流~ 大家有没有在某抖平台刷到过这样的萌宠摆摊视频&#xff0c;真的很可爱了&#xff01;也有很不错的点赞量&#xff0c;如果持续发&#xff0c;涨粉…...

Floquet量子码的动态纠错与时空同步技术解析

1. Floquet量子码的时空同步原理在量子纠错领域&#xff0c;Floquet码代表了一种通过周期性测量实现动态稳定的新型编码方案。与传统静态量子纠错码不同&#xff0c;Floquet码的核心创新在于将时间维度纳入编码结构&#xff0c;形成时空一体的纠错机制。这种动态特性使其在容错…...

别再死记硬背了!用Unity游戏开发中的真实案例,5分钟搞懂C#继承与多态

用Unity游戏案例5分钟掌握C#继承与多态的精髓 在Unity游戏开发中&#xff0c;面向对象编程&#xff08;OOP&#xff09;的概念如继承和多态不仅是理论上的抽象概念&#xff0c;更是构建灵活、可扩展游戏系统的基石。想象一下&#xff0c;当你需要设计一个包含多种敌人类型的游戏…...

今日算法(依旧二叉树)

class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {//递归进行&#xff0c;加回溯过程if(rootq||rootp||rootNULL) return root;TreeNode*leftlowestCommonAncestor(root->left,p,q);TreeNode*rightlowestCommonAncestor…...

Go语言秘钥管理:K8s Secret

Go语言秘钥管理&#xff1a;K8s Secret 1. Secret使用 import ("k8s.io/client-go/kubernetes""k8s.io/client-go/rest" )func getSecret(clientset *kubernetes.Clientset, name, namespace string) (string, error) {secret, err : clientset.CoreV1()…...

保姆级教程:从零开始给SkyWalking Agent写一个自定义日志插件(Logback篇)

深入SkyWalking Agent插件开发&#xff1a;构建自定义日志组件的完整方法论 在分布式系统的监控领域&#xff0c;SkyWalking以其强大的全链路追踪能力广受开发者青睐。但很多团队在基础监控之外&#xff0c;往往需要根据业务特点定制专属的监控指标——比如在日志中嵌入用户ID、…...

【Qt串口实战】硬件升级后readyRead信号丢失的排查与修复

1. 问题现象&#xff1a;硬件升级后readyRead信号神秘消失 那天早上刚到公司&#xff0c;硬件组的同事兴冲冲地跑过来告诉我&#xff1a;"老王&#xff0c;我们给设备升级了最新固件&#xff0c;性能提升30%&#xff01;"我心想这是好事啊&#xff0c;结果打开调试软…...

CL API实时闭环神经控制技术解析与应用

1. CL API实时闭环神经控制技术概述在生物神经网络&#xff08;BNN&#xff09;研究领域&#xff0c;实时闭环控制技术正成为连接计算系统与生物神经元的桥梁。CL API作为这一领域的前沿工具&#xff0c;其设计哲学源于对神经电生理实验的深刻理解——当我们需要在毫秒级时间尺…...