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

qt-17不规则窗体

不规则窗体

  • 知识点
  • shape.h
  • shape.cpp
  • main.cpp
  • 运行图

知识点

感觉这个就是在图片背景 贴了白色

shape.h

#ifndef SHAPE_H
#define SHAPE_H#include <QWidget>class Shape : public QWidget
{Q_OBJECTpublic:Shape(QWidget *parent = nullptr);~Shape();
protected:void mousePressEvent(QMouseEvent*);void mouseMoveEvent(QMouseEvent *event);void paintEvent(QPaintEvent*);
private:QPoint DragPosition;};
#endif // SHAPE_H

shape.cpp

#include "shape.h"
#include <QMouseEvent>
#include <QPainter>
#include <QPixmap>
#include <QBitmap>Shape::Shape(QWidget *parent): QWidget(parent)
{QPixmap Pix;Pix.load("312.ico",0,Qt::AvoidDither|Qt::ThresholdDither|Qt::ThresholdAlphaDither);resize(Pix.size());setMask(QBitmap(Pix.mask()));}Shape::~Shape() {}void Shape::mousePressEvent(QMouseEvent *Event)
{if(Event->button() == Qt::LeftButton){DragPosition = Event->globalPos() - frameGeometry().topLeft();Event->accept();}if(Event->button() == Qt::RightButton){close();}}void Shape::mouseMoveEvent(QMouseEvent *Event)
{if(Event->buttons()&Qt::LeftButton){move(Event->globalPos()-DragPosition);Event->accept();}
}void Shape::paintEvent(QPaintEvent*)
{QPainter Painter(this);Painter.drawPixmap(0,0,QPixmap("312.ico"));}

main.cpp

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

运行图

在这里插入图片描述


http://www.mrgr.cn/news/724.html

相关文章:

  • 【微信小程序】生命周期
  • 数据结构——单链表
  • 【uni-app】使用天气API做一个天气APP(全过程)- 实况、逐小时、40日
  • Qt/QML学习-Dial
  • 贪心算法---跳跃游戏
  • 牛客网SQL 练习二
  • SpringBoot的事务/调度/缓存/邮件发送和一些Spring知识点总结
  • 虚幻5|布料模拟
  • 机器学习——全连接(MLP多层感知机)的理解
  • LLMs之Llama Coder:llama-coder的简介、安装和使用方法、案例应用之详细攻略
  • 一键运行RocketMQ5.3和Dashboard
  • 高可用负载均衡集群
  • C++的序列容器——数组
  • Docker Containerd初体验
  • 博达网站群管理平台 v6.0使用相关问题解决
  • [NOIP2007 普及组] 守望者的逃离 题解
  • 数据结构(03):线性表的逻辑结构
  • 《AI视频类工具之十——​D-ID》
  • web小游戏开发:拼图——蜂巢拼图
  • Java封装httpClient