Qt 不规则窗体

步骤1:定义

public:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void paintEvent(QPaintEvent *event);
QPoint DragPosition;

步骤2:构造函数中实现

QPixmap pix;
//加载图片
pix.load("11.png",0,Qt::AvoidDither|Qt::ThresholdDither| Qt::ThresholdAlphaDither);
resize(pix.size());//重设主窗体的尺寸为所读取的图片大小

setMask(QBitmap(pix.mask()));//遮住所选区域以外的部分

步骤3:使窗口可以拖动

void MainWindow::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)//判断按下的是否为鼠标左键
{
//DragPosition保存所在位置相对于左上角的偏移值
DragPosition = event->globalPos()-frameGeometry().topLeft();
event->accept();
}
if(event->button() == Qt::RightButton)//判断按下的是否为鼠标右键
{
close();
}
}
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
if(event->buttons() == Qt::LeftButton)//event->buttons()返回的是鼠标的状态
{
move(event->globalPos()-DragPosition);//移动到鼠标当前点
event->accept();
}
}

步骤4:使窗口显示为所读取的图片

void MainWindow::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawPixmap(0,0,QPixmap(“11.png”));
}
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值