#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowFlags(Qt::Tool|Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);//悬浮窗|取消标题栏
this-> setAutoFillBackground(false); //这个不设置的话就背景变黑
this->setAttribute(Qt::WA_TranslucentBackground);//设置窗口背景透明
auto blurEffect = new QGraphicsBlurEffect(ui->label);
blurEffect->setBlurRadius(2);
ui->label->setGraphicsEffect(blurEffect);
QTimer::singleShot(0,this,SLOT(myslot_creat()));
}
void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
// ui->label->setStyleSheet("");
// this->update();
}
Widget::~Widget()
{
delete ui;
}
void Widget::myslot_creat()
{
QPixmap m_pixmap = QPixmap::grabWindow(QApplication::desktop()->winId(),this->x()+ui->label->x(),this->y()+ui->label->y(),ui->label-> width(),ui->label->height());
ui->label->setPixmap(m_pixmap);
}
void Widget::on_verticalSlider_actionTriggered(int action)
{
}
void Widget::on_verticalSlider_valueChanged(int value)
{
auto blurEffect = new QGraphicsBlurEffect(ui->label);
blurEffect->setBlurRadius(value);
ui->label->setGraphicsEffect(blurEffect);
}
void Widget::on_pushButton_clicked()
{
auto blurEffect = new QGraphicsBlurEffect(ui->label);
blurEffect->setBlurRadius(0);
ui->label->setGraphicsEffect(blurEffect);
this->hide();
myslot_creat();
this->show();
// auto blurEffect = new QGraphicsBlurEffect(ui->label);
blurEffect->setBlurRadius(ui->verticalSlider->value());
ui->label->setGraphicsEffect(blurEffect);
}
void Widget::mousePressEvent(QMouseEvent *event)
{
if(event->button()==Qt::LeftButton){//左键拖动窗体
relativePos = this->pos()- event->globalPos();
}
}
void Widget::mouseReleaseEvent(QMouseEvent *event)
{
on_pushButton_clicked();
/* if (y() <= 0)
{
m_eEdgeStatus = EG_TOP;
}
else if (QApplication::desktop()->width() <= (this->x() + width()))
{
m_eEdgeStatus = EG_RIGHT;
}
else if (this->x() <= 0)
{
m_eEdgeStatus = EG_LEFT;
}
else if(QApplication::desktop()->height()<=(this->y() + height()))
{
m_eEdgeStatus = EG_BOTTOM;
}
else
{
m_eEdgeStatus = EG_NORMAL;
}
*/
}
void Widget::mouseMoveEvent(QMouseEvent *event)//移动窗体
{
this->move(event->globalPos() + relativePos);
}
Qt Windows下的毛玻璃效果
4星 · 超过85%的资源 需积分: 48 185 浏览量
2018-07-27
10:20:03
上传
评论 4
收藏 100KB ZIP 举报
Qtea
- 粉丝: 17
- 资源: 7
最新资源
- v8390966-xhs-Guanfang_X64.apk
- 《STM32单片机+MAX30102心率血氧传感器+OLED屏幕+心率血氧数据发送到串口调试助手》源代码
- 刷机和解锁system分区全套软件
- vb6.0使用数据环境设计器dataenvoriment连接带密码的access数据库不成功解决办法
- wifiphisher-master
- 构建简单的社交网站时,Redis 可以作为一个非常有用的工具来存储和管理各种数据 以下是一些在构建社交网站时可以使用 Redis
- 分布式锁和信号量都是在分布式系统中用于控制并发访问的重要工具,它们有不同的特点和应用场景: 1. **分布式锁**:
- Screenshot_2024-06-07-16-32-13-866_com.android.browser.jpg
- Redis 是一个流行的开源内存数据库,它支持多种数据结构,如字符串、哈希、列表、集合和有序集合等 以下是一些常见的 Redis
- 在计算机中,Maven 是一个广泛用于构建和管理 Java 项目的工具 它基于项目对象模型(Project Object Mod
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈