QT 入门(无边框窗口拖拽 窗体透明 阴影)

1 隐藏window默认边框

setWindowFlags(Qt::FramelessWindowHint | windowFlags());

2 重写鼠标进入事件 鼠标松开函数 鼠标移动事件 声明

virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseReleaseEvent(QMouseEvent *event);
virtual void mouseMoveEvent(QMouseEvent *event);

 

3 实现

 

void MainWindow::mouseMoveEvent(QMouseEvent * event)
{
	QPoint mousePoint = event->globalPos();
	QPoint point = mousePoint - z;
	this->move(point);
}

void MainWindow::mousePressEvent(QMouseEvent * event)
{
	QPoint mousePoint = event->globalPos();
	QPoint topPoint = this->geometry().topLeft();
	z = mousePoint - topPoint;
}

void MainWindow::mouseReleaseEvent(QMouseEvent * event)
{
	this->z = QPoint();
}

 

4 设置窗口阴影 无法设置主窗口

QGraphicsDropShadowEffect *shadowEffect = new QGraphicsDropShadowEffect();
shadowEffect->setBlurRadius(10);	//设置圆角半径 像素
shadowEffect->setColor(Qt::black);	// 设置边框颜色
shadowEffect->setOffset(0);

this->ui.shadowWidget->setGraphicsEffect(shadowEffect);

5 设置主窗口透明

this->setAttribute(Qt::WA_TranslucentBackground);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值