// 创建遮罩
m_cellMasks[0] = new QWidget;
m_cellMasks[0]->setWindowFlags(Qt::FramelessWindowHint | windowFlags()); // 隐藏标题
m_cellMasks[0]->setWindowOpacity(0.4); //关键-设置窗口透明度 1不透明 0透明
m_cellMasks[0]->setVisible(false); // 默认隐藏
m_cellMasks[0]->setStyleSheet("background-color: #1F1F1F"); // 遮罩背景颜色
m_cellMasks[0]->installEventFilter(this); // 注册过滤器
// 显示遮罩--这里需要注意,我们的遮罩不能直接使用界面的rect,需要计算出实际的位置
QRect rect = QRect(this->normalGeometry().x(), this->normalGeometry().y(), this->normalGeometry()->width(), this->normalGeometry()->height());
m_cellMasks[0]->setParent(this, Qt::FramelessWindowHint | Qt::Window);
m_cellMasks[0]->setGeometry(rect);
m_cellMasks[0]->show();
// 注意,现在的遮罩是单独弹出窗口的rect,若实际的遮罩是窗口部件,
// 则需要计算出,窗口部件在屏幕中的实际的位置
QT渲染窗口添加遮罩
最新推荐文章于 2024-11-25 08:45:33 发布
5045

被折叠的 条评论
为什么被折叠?



