首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于QFrame是完全透明的

对于QFrame是完全透明的
EN

Stack Overflow用户
提问于 2020-05-01 05:40:43
回答 2查看 425关注 0票数 0

我使用的是Qt Creator 4.5.2 (Qt 5.9.5,GCC 7.3.0 64位),运行在Ubuntu 18.04上。

我有一个QT MainWindow (a QWidget),它是QRectF(0,0,480,800)。在MainWindow上,有一个QFrame,它是QRectF(0,60,480,400)。我希望QFrame是完全透明的。换句话说,我希望看到QFrame框架后面的PC桌面上的显示,但不想看到QT MainWindow其他部分后面的桌面。

有可能吗?我用谷歌搜索了很多,但没有找到一个好的解决方案。

我试过了:

代码语言:javascript
复制
setStyleSheet("QFrame{border: None; background-color: transparent;}");

代码语言:javascript
复制
setStyleSheet("background-color: transparent; QFrame{border: None; background-color: transparent;}");

代码语言:javascript
复制
setStyleSheet("QFrame{border: None; background-color: rgba(0,0,0,100;}");

这两个都不管用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-01 05:52:54

这对我很有效

代码语言:javascript
复制
widget->setStyleSheet("background-color: transparent;");
widget->setWindowFlags(Qt::FramelessWindowHint);   //No windowing
widget->setAttribute(Qt::WA_TranslucentBackground); // No background
票数 2
EN

Stack Overflow用户

发布于 2020-05-01 18:06:42

当您将QFrame添加到QMainWindow并将透明背景设置为QFrame时,QMainWindow仍将使用某些颜色进行填充。您需要将透明样式设置为QFrame:

代码语言:javascript
复制
frame->setStyleSheet("border: none; background: transparent;");

然后将属性设置为QMainWindow:

代码语言:javascript
复制
mainWindow->setAttribute(Qt::WA_TranslucentBackground);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61533223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档