首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用样式表在QMainWindow上使用QT5.10半透明背景

使用样式表在QMainWindow上使用QT5.10半透明背景
EN

Stack Overflow用户
提问于 2018-06-24 13:01:44
回答 1查看 3.2K关注 0票数 4

我想使用QMainWindow::setStyleSheet方法设置我的QMainWindow类半透明背景。我所做的事情是:

代码语言:javascript
复制
QMainWindow window;
window.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
window.setStyleSheet("background-color: rgba(255, 0, 0, 128)");
window.setAttribute(Qt::WA_TranslucentBackground, true);
window.setFixedSize(800, 600);
window.show();

我有一个完全透明的窗口,几乎什么也看不见。如果我没有

代码语言:javascript
复制
window.setAttribute(Qt::WA_TranslucentBackground, true);

我的窗户全是红色的。

我发现,继承'QMainWindow',重载'paintEvent()‘,并在QColor中使用’QPainter->馅what ()‘做我想做的事情,但它没有使用样式表。

任何人都可以使用'setStyleSheet()‘方法来帮助做这件事?我已经找到了很多的帖子和答案,但是没有什么帮助我。

诚挚的问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-24 18:54:55

看来我是偶然找到解决办法的。必须创建QWidget,set是QMainWindow上的中心小部件,在小部件(而不是主窗口)上设置样式表。效果很好。

代码语言:javascript
复制
QMainWindow window;
window.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
window.setAttribute(Qt::WA_TranslucentBackground, true);
window.setFixedSize(800, 600);

QWidget widget(&window);
widget.setStyleSheet("background-color: rgba(255, 0, 0, 128)");

window.setCentralWidget(&widget);
window.show();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51010194

复制
相关文章

相似问题

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