QT窗口阴影+拖动

server/2025/1/16 7:05:34/

QT
去除默认边框,为界面添加阴影,实现拖动效果。只是示例,没有完成关闭等按钮,根据具体情况添加,可以使用ui设计画一个。

#include <QApplication>
#include <QWidget>
#include <QPoint>
#include <QMouseEvent>
#include <QGraphicsDropShadowEffect>
#include <QVBoxLayout>class Window:public QWidget
{Q_OBJECT
public:Window(QWidget* parent=nullptr){this->setWindowFlags(Qt::FramelessWindowHint);this->setAttribute(Qt::WA_TranslucentBackground);// this->setContentsMargins(3,5,5,3); /*左上右下*/QGraphicsDropShadowEffect *shadow_effect = new QGraphicsDropShadowEffect(this);shadow_effect->setOffset(0, 0);shadow_effect->setColor(Qt::black);shadow_effect->setBlurRadius(25);QWidget* container = new QWidget(this);container->setFixedSize(480,360);container->setStyleSheet("background-color:red;");container->setGraphicsEffect(shadow_effect);QVBoxLayout *layout = new QVBoxLayout(this);layout->addWidget(container);this->setLayout(layout);}
protected:void mousePressEvent(QMouseEvent *event) override {if (event->button() == Qt::LeftButton) {/* 计算鼠标点击位置相对于窗口内部的偏移量*/m_offset = event->globalPosition().toPoint() - frameGeometry().topLeft();event->accept();}}void mouseMoveEvent(QMouseEvent *event) override {if (event->buttons() & Qt::LeftButton) {/* 移动窗口 */move(event->globalPosition().toPoint() - m_offset);event->accept();}}
private:QPoint m_offset;
};int main(int argc, char *argv[])
{QApplication a(argc, argv);Window w;w.show();return a.exec();
}#include "main.moc"

效果
在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/server/158760.html

相关文章

【微服务justsoso-cloud系列】目录

【微服务justsoso-cloud系列】目录 1.vagrantvirtualbox实现centos7安装 2.centos7安装jdk17教程 3.Linux安装Docker教程&#xff08;详解&#xff09; 4.Linux安装git 5.zerotier搭建虚拟局域网&#xff0c;自建planet

如何优化Elasticsearch大文档查询?

记录一次业务复杂场景下DSL优化的过程 背景 B端商城业务有一个场景就是客户可见的产品列表是需要N多闸口及各种其它逻辑组合过滤的&#xff0c;各种闸口数据及产品数据都是存储在ES的(有的是独立索引&#xff0c;有的是作为产品属性存储在产品文档上)。 在实际使用的过程中&a…

【SQL——结构化查询语句】

数据的存储-SQL 数据的计算-Python 数据库是用来存储数据的&#xff0c;在这个过程中&#xff0c;会涉及到数据的增删改查与数据库数据表的维护管理 而SQL语言&#xff0c;就是一种对数据库、数据进行操作、管理、查询的工具。 使用数据库软件去获得库->表->数据&#x…

抖音矩阵是什么

抖音矩阵是指在同一品牌或个人IP下&#xff0c;通过创建多个不同定位的抖音账号&#xff08;如主号、副号、子号等&#xff09;&#xff0c;形成一个有机的整体&#xff0c;以实现多维度、多层次的内容覆盖和用户互动。以下是关于抖音矩阵的详细介绍&#xff1a; 抖音矩阵的类…

多态(2)

大家好&#xff0c;今天我们继续来学习多态的知识&#xff0c;上篇我们已经简单了解了多态&#xff0c;今天我们来看看该如何实现多态&#xff0c;来看。 重载和重写的区别是什么&#xff1f; 重载: 1.方法名称相同 2.参数列表不同[(数据类型,个数.顺序)] 3.返回值不做要…

适合与简约设计搭配的复古符号推荐

Hey&#xff0c;创意小伙伴们&#xff01;&#x1f44b; 想要在设计中融合复古与简约&#xff0c;却又不知道哪些复古符号能完美契合&#xff1f;别担心&#xff0c;今天就来为你盘点一些既经典又百搭的复古符号&#xff0c;让你的设计轻松拿捏复古简约风&#xff01;&#x1…

“深入浅出”系列之设计模式篇:(0)什么是设计模式

设计模式六大原则 1. 单一职责原则&#xff1a;一个类或者一个方法只负责一项职责&#xff0c;尽量做到类的只有一个行为原因引起变化。 核心思想&#xff1a;控制类的粒度大小&#xff0c;将对象解耦&#xff0c;提高其内聚性。 2. 开闭原则&#xff1a;对扩展开放&#xf…

怎么设置电脑屏幕一直亮着 Windows系统/Mac系统

当您正在使用电脑专注工作或观看视频&#xff0c;突然间电脑屏幕自动关闭&#xff0c;是否会感到十分困惑&#xff1f;这种情况通常是由电源管理设置引起的&#xff0c;Windows系统默认会在一段时间没有操作后关闭显示器&#xff0c;以节省电量。设置电脑屏幕一直亮着&#xff…