我想使用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.setAttribute(Qt::WA_TranslucentBackground, true);我的窗户全是红色的。
我发现,继承'QMainWindow',重载'paintEvent()‘,并在QColor中使用’QPainter->馅what ()‘做我想做的事情,但它没有使用样式表。
任何人都可以使用'setStyleSheet()‘方法来帮助做这件事?我已经找到了很多的帖子和答案,但是没有什么帮助我。
诚挚的问候。
发布于 2018-06-24 18:54:55
看来我是偶然找到解决办法的。必须创建QWidget,set是QMainWindow上的中心小部件,在小部件(而不是主窗口)上设置样式表。效果很好。
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();https://stackoverflow.com/questions/51010194
复制相似问题