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

qt 一个可以拖拽的矩形

1.概要

2.代码

2.1 mycotrl.h

#ifndef MYCOTRL_H
#define MYCOTRL_H#include <QWidget>
#include <QMouseEvent>class MyCotrl: public QWidget
{Q_OBJECT
public://MyCotrl();MyCotrl(QWidget *parent = nullptr);
protected:void paintEvent(QPaintEvent *event);void mousePressEvent(QMouseEvent *event);void mouseMoveEvent(QMouseEvent *event);void mouseReleaseEvent(QMouseEvent *event);
private:bool dragging;QPoint oldPos;
};

2.2 widget.h 

 

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private:Ui::Widget *ui;
};
#endif // WIDGET_H

2.3 mycotrl.cpp 

 

#include "mycotrl.h"
#include <QPainter>//MyCotrl::MyCotrl() {}MyCotrl::MyCotrl(QWidget *parent) : QWidget(parent), dragging(false)
{}void MyCotrl::paintEvent(QPaintEvent *event)  {QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);painter.setBrush(Qt::blue);painter.drawRect(rect()); // 绘制一个矩形,其大小由QWidget的size决定
}void MyCotrl::mousePressEvent(QMouseEvent *event){if (event->button() == Qt::LeftButton) {dragging = true;oldPos = event->pos();}
}void MyCotrl::mouseMoveEvent(QMouseEvent *event){if (dragging) {move(mapToParent(event->pos()) - oldPos);oldPos = event->pos();}
}void MyCotrl::mouseReleaseEvent(QMouseEvent *event) {Q_UNUSED(event)dragging = false;
}

 

2.4 widget.cpp 

 

#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>
#include "mycotrl.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton *button = new QPushButton("My Button", this);// 设置按钮的位置和大小(可选)// 注意:在 QMainWindow 中,你可能需要先设置一个 central widget 或其他容器button->setGeometry(QRect(10, 10, 100, 30));MyCotrl* my = new MyCotrl(this);button->setGeometry(QRect(100, 100, 100, 30));
}Widget::~Widget()
{delete ui;
}

2.5 main.cpp 

 

#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

3.运行结果

 

相关文章:

qt 一个可以拖拽的矩形

1.概要 2.代码 2.1 mycotrl.h #ifndef MYCOTRL_H #define MYCOTRL_H#include <QWidget> #include <QMouseEvent>class MyCotrl: public QWidget {Q_OBJECT public://MyCotrl();MyCotrl(QWidget *parent nullptr); protected:void paintEvent(QPaintEvent *even…...

C# 启动exe 程序

(1) publicbool Start () System.Diagnostics.Process process new System.Diagnostics.Process(); process.StartInfo.FileName "iexplore.exe"; //IE浏览器&#xff0c;可以更换 process.StartInfo.Arguments "http://www.baidu.com"; process.…...

Netty中的Reactor模型实现

Netty版本&#xff1a;4.1.17 Reactor模型是Doug Lea在《Scalable IO in Java》提出的&#xff0c;主要是针对NIO的。 其中的主从Reactor模式在Netty中的配置如下&#xff1a; EventLoopGroup bossGroup new NioEventLoopGroup(1); EventLoopGroup workerGroup new NioEv…...

dll丢失应该怎么解决,总结5种解决DLL丢失问题的方法

在数字时代&#xff0c;我们与计算机的每一天都密不可分。然而&#xff0c;就像所有技术产品一样&#xff0c;我们的计算设备也时不时地会出现一些问题&#xff0c;让人头疼不已。就在上周&#xff0c;我遭遇了一个令人崩溃的技术挑战——DLL文件丢失。这个看似微不足道的小问题…...

dial tcp 10.96.0.1:443: connect: no route to host

1、创建Pod一直不成功&#xff0c;执行kubectl describe pod runtime-java-c8b465b98-47m82 查看报错 Warning FailedCreatePodSandBox 2m17s kubelet Failed to create pod sandbox: rpc error: code Unknown desc failed to setup network for…...

VScode创建ROS项目 ROS集成开发环境

ROS使用VScode创建项目步骤 1.创建ROS工作空间2.启动VScode3.VScode编译ROS4.创建ROS功能包C语言开发Python语言开发 本文章介绍了如何在Ubuntu18.04系统下搭建VScode 的ROS项目 搭建项目分为一下几个步骤&#xff1a; 1.创建ROS工作空间 创建一个demo的ROS工作空间&#xff0…...

nodejs从基础到实战学习笔记-nodejs简介

一、Node.js简介 • Node.js是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境。 • Node采用Google开发的V8引擎运行js代码&#xff0c;使用事件驱动、非阻塞和异步I/O模型等技术来提高性能&#xff0c;可优化应用程序的传输量和规模。 1.1 特性 …...

2024年最新版------二进制安装部署Kubernetes(K8S)集群

Kubernetes二进制集群部署 文章目录 Kubernetes二进制集群部署资源列表基础环境一、环境准备1.1、绑定映射关系1.2、所有主机安装Docker1.3、所有主机设置iptables防火墙 二、生成通信加密证书2.1、master上成功CA证书2.2.1、创建证书存放位置并安装证书生成工具2.2.2、拷贝证书…...

【mysql】关键词搜索实现

关键词搜索实现两种方式 -- 方式1 模糊匹配搜索 -- 场景一&#xff1a;搜索出来地址内包含‘李’和‘中国’的 select * from tn_md_cust_link where address like concat (%李%) or address like concat (%中国%) -- 场景二&#xff1a;搜索地址或者名称包含 ‘181’ 的 …...

Python面试十问2

一、如何使用列表创建⼀个DataFrame # 导入pandas库 import pandas as pd# 创建一个列表&#xff0c;其中包含数据 data [[A, 1], [B, 2], [C, 3]]# 使用pandas的DataFrame()函数将列表转换为DataFrame df pd.DataFrame(data, columns[Letter, Number]) # 列名# 显示创建的…...

C# OpenCvSharp 图像处理函数-颜色通道-cvtColor

使用 OpenCvSharp 中的 cvtColor 函数进行图像颜色转换 在图像处理领域,颜色空间转换是一个非常常见的操作。OpenCvSharp 提供了一个强大的函数 cvtColor 来处理这类转换。本文将详细介绍 cvtColor 函数的使用方法,并通过具体的示例演示如何在实际项目中应用这些知识。 函数…...

总结之LangChain(三)——模型IO缓存

一、聊天模型缓存 LangChain为聊天模型提供了一个可选的缓存层。这有两个好处&#xff1a; 如果您经常多次请求相同的完成结果&#xff0c;它可以通过减少您对LLM提供程序的API调用次数来帮您节省费用。 它可以通过减少您对LLM提供程序的API调用次数来加快您的应用程序速度。…...

判断一个Java服务是不是GateWay

方法 直接在对应服务的url后变加上后缀/actuator/gateway/routes&#xff0c;看是否会返回Gateway的路由信息。 如果返回了GateWay的路由列表&#xff0c;则该服务为Gateway服务。...

三次插值曲线--插值技术

三次插值曲线 1.1.三次样条曲线 三次样条曲线的基本思想是&#xff0c;在给定的一系列点&#xff08;称为控制点或数据点&#xff09;之间&#xff0c;通过一系列三次多项式曲线段来拟合这些点&#xff0c;使得整个曲线既平滑又准确地通过所有控制点。 1.1.1.数学定义 给定…...

python循环结构

1.while 循环 语句&#xff1a; while 循环条件表达式&#xff1a; 代码块 else&#xff1a; 代码块 小练&#xff1a; 设计一百以内的偶数相加 n 0 while n < 100:n 1if n % 2 0 :print(n) 判断是不是闰年&#xff08;四年一润和百年不润&#xff0c;或者四百年一润&am…...

深入理解Netty的Pipeline机制:原理与实践详解

深入理解Netty的Pipeline机制&#xff1a;原理与实践详解 Netty是一个基于Java的高性能异步事件驱动的网络应用框架&#xff0c;广泛应用于高并发网络编程。&#xff08;学习netty请参考&#xff1a;深入浅出Netty&#xff1a;高性能网络应用框架的原理与实践&#xff09;Nett…...

直方图均衡化示例

禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面向新工科的电工电子信息基础课程系列教材&#xff09;》 图3-17...

私域电商新纪元:消费增值模式的创新与成功实践

大家好&#xff0c;我是吴军&#xff0c;很高兴能够与您分享私域电商领域的魅力与机遇。今天&#xff0c;我将为大家呈现一个令人瞩目的成功案例&#xff0c;这个案例充分展现了私域电商的巨大潜力和无限可能。 在短短一个月的时间里&#xff0c;我们的客户成功实现了业绩的飞跃…...

Java——IO流(一)-(6/8):字节流-FileInputStream 每次读取多个字节(示例演示)、一次读取完全部字节(方式一、方式二,注意事项)

目录 文件字节输入流&#xff1a;每次读取多个字节 实例演示 注意事项 文件字节输入流&#xff1a;一次读取完全部字节 方式一 方式二 注意事项 文件字节输入流&#xff1a;每次读取多个字节 用到之前介绍过的常用方法&#xff1a; 实例演示 需求&#xff1a;用每次读取…...

服务器SSH 免密码登录

1. 背景 为了服务器的安全着想&#xff0c;设置的服务器密钥非常长。但是这导致每次连接服务器都需要输入一长串的密码&#xff0c;把人折腾的很痛苦&#xff0c;所以我就在想&#xff0c;能不能在终端SSH的时候无需输入密码。 windows 可以使用 xshell 软件&#xff0c;会自…...

DLSS Swapper完整指南:高效管理游戏DLSS、FSR与XeSS版本

DLSS Swapper完整指南&#xff1a;高效管理游戏DLSS、FSR与XeSS版本 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专业的游戏性能优化工具&#xff0c;专门用于管理NVIDIA DLSS、AMD FSR和Intel X…...

Comsol瓦斯抽采:深入探索复杂的地下奥秘

comsol瓦斯抽采 该案例涉及不同抽采数学模型理论 不同渗透率模型、有效应力分布媒体变形情况、瓦斯抽采量瓦斯压力分布 涵盖不同地应力工况对比 有数个详细视频 视频涉及理论分析及推导、模型建立及案例操作过程在煤矿开采领域&#xff0c;瓦斯抽采是一项至关重要的技术&#x…...

SecGPT-14B赋能教育行业:高校网络安全实验室AI教学平台搭建

SecGPT-14B赋能教育行业&#xff1a;高校网络安全实验室AI教学平台搭建 1. 引言&#xff1a;当网络安全教学遇上AI大模型 想象一下&#xff0c;在高校的网络安全实验室里&#xff0c;学生面对一个复杂的漏洞分析报告&#xff0c;不再需要花费数小时翻阅厚重的教材和零散的在线…...

Wan2.2-I2V-A14B镜像应用案例:快速生成高质量短视频,助力内容创作

Wan2.2-I2V-A14B镜像应用案例&#xff1a;快速生成高质量短视频&#xff0c;助力内容创作 1. 引言&#xff1a;短视频创作的新范式 在数字内容爆炸式增长的今天&#xff0c;短视频已成为最主流的内容形式之一。无论是电商平台的商品展示、社交媒体上的创意内容&#xff0c;还…...

Conda镜像源配置的3个高级玩法与1个常见大坑:不止是换URL那么简单

Conda镜像源配置的3个高级玩法与1个常见大坑&#xff1a;不止是换URL那么简单 当你在团队协作中遇到TensorFlow版本冲突&#xff0c;或是Docker构建时因网络问题卡在Solving environment步骤&#xff0c;基础镜像源切换早已不够用。真正的高手会在.condarc里埋下这些彩蛋&#…...

3个关键技巧优化华硕笔记本性能:GHelper完全指南

3个关键技巧优化华硕笔记本性能&#xff1a;GHelper完全指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: ht…...

跨平台文件同步方案:OpenClaw+Qwen3-32B智能归档系统

跨平台文件同步方案&#xff1a;OpenClawQwen3-32B智能归档系统 1. 为什么需要智能文件同步 作为一个长期在多台设备间切换工作的开发者&#xff0c;我深受文件管理混乱的困扰。Mac上的设计稿、Windows里的开发文档、Linux服务器上的日志文件——这些散落在各处的数据就像一座…...

Neovim美化踩坑实录:从乱码图标到完美主题,我的init.lua配置全解析(附避坑清单)

Neovim美化踩坑实录&#xff1a;从乱码图标到完美主题&#xff0c;我的init.lua配置全解析&#xff08;附避坑清单&#xff09; 第一次打开Neovim时&#xff0c;满屏的方块符号和刺眼的默认配色让我差点以为打开了某个古董终端。作为从VSCode转投Neovim的开发者&#xff0c;我原…...

OpenClaw网关配置详解:Qwen3-32B镜像的端口与安全设置

OpenClaw网关配置详解&#xff1a;Qwen3-32B镜像的端口与安全设置 1. 为什么需要关注网关配置&#xff1f; 上周我在本地部署Qwen3-32B模型时&#xff0c;遇到了一个尴尬的问题&#xff1a;凌晨3点被安全团队电话叫醒&#xff0c;原因是OpenClaw的测试端口被扫描到异常流量。…...

开发者必备:OpenClaw+Qwen3-32B镜像调试Python脚本全攻略

开发者必备&#xff1a;OpenClawQwen3-32B镜像调试Python脚本全攻略 1. 为什么选择OpenClawQwen3-32B组合&#xff1f; 去年冬天调试一个图像处理项目时&#xff0c;我每天要反复执行十几个Python脚本&#xff0c;手动检查日志、截图比对结果。直到发现OpenClaw这个"数字…...