博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt5开发及实例学习之不规则窗体:没看懂
阅读量:7025 次
发布时间:2019-06-28

本文共 1463 字,大约阅读时间需要 4 分钟。

hot3.png

1、新建QT GUI工程,项目名称“ShapeWidget”, 基类QWidget, 类名ShapeWidget,取消“创建界面”

 

2、ShapeWidget.h

#ifndef SHAPEWIDGET_H#define SHAPEWIDGET_H#include 
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

3、

#include "shapewidget.h"#include 
#include
#include
#include
ShapeWidget::ShapeWidget(QWidget *parent) : QWidget(parent){ QPixmap pix; pix.load("F:\\MyCode\\test1.bmp", 0, Qt::AvoidDither|Qt::ThresholdDither|Qt::ThresholdAlphaDither); resize(pix.size()); setMask(QBitmap(pix.mask()));}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("F:\\MyCode\\test1.bmp"));}

 

转载于:https://my.oschina.net/u/3919756/blog/1941792

你可能感兴趣的文章
spring的IO原理
查看>>
NSMuttableAttstring的用法
查看>>
android EditText控制最大输入行数
查看>>
Object—C 块在函数中作为参数时的分析
查看>>
leetcode Palindrome Number
查看>>
ASP.NET中在线人数统计(Global.asax)
查看>>
【LeetCode每天一题】Merge Intervals(合并区间)
查看>>
nexus-2.11.4-01-bundle.tar.gz 下载地址
查看>>
hdu 2546 饭卡
查看>>
wp 托盘控制
查看>>
VBA 特约导入代码
查看>>
python ORM理解、元类
查看>>
spring-boot-sample-web-jsp
查看>>
虚拟机console基础环境配置——安装VMware Tools
查看>>
BZOJ1257 余数之和
查看>>
C++指针详解
查看>>
IIS部署asp.net mvc网站
查看>>
[javaSE] 反射-方法的反射
查看>>
[下载地址] eclipse下载
查看>>
第一次作业+105032014098
查看>>