我想使用QMainWindow :: setStyleSheet方法设置QMainWindow类半透明背景。 我做类似的事情:
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();
我得到了完全透明的Window,几乎看不到任何东西。 如果我没有这样做
window.setAttribute(Qt::WA_TranslucentBackground, true);
我的窗口完全是红色的。
我发现,继承'QMainWindow',重载'paintEvent()'并在带有Qalpha的QColor中使用'QPainter-> fillRect()'可以实现我想要的功能,但是它没有使用样式表。
任何人都可以使用'setStyleSheet()'方法帮助完成此操作吗?我已经找到了很多帖子和答案,但是没有任何帮助。
最诚挚的问候。
答案 0 :(得分:0)
看来我是偶然找到解决方案的。必须创建QWidget,将其设置为QMainWindow上的中央窗口小部件,并在该窗口小部件而非主窗口上设置样式表。效果很好。
git revert HEAD
git checkout branch
git cherry-pick id_commit
git push