我创建了一个透明的qml窗口,一切正常,直到我将我的windows 7主题更改为经典,我希望它透明的区域是黑色。
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QtQuick>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
// QQuickWindow::setDefaultAlphaBuffer(true);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
return app.exec();
}
和我的Qml读取
import QtQuick 2.6
import QtQuick.Window 2.2
import QtGraphicalEffects 1.0
Window {
id: window
visible: true
width: 640
height: 480
color: "#00000000"
flags: Qt.Window | Qt.FramelessWindowHint//去掉标题栏
RectangularGlow {
anchors.fill: background
glowRadius: 10
spread: 0
cornerRadius: 10
color: "#99999999"
}
Rectangle{
id: background
anchors.topMargin: 50
anchors.centerIn: parent
radius: 15
width: parent.width *2/3
height: parent.height - 10
color: "#ffdbeef5"
}
}
任何人都有一些想法?
答案 0 :(得分:0)
QtQuick透明窗口不适用于Win7经典主题。透明窗口仅适用于启用Aero的情况。可能有一些工作或非QT方式这样做。关于这个bug有很多讨论,并且已经报告了(https://bugreports.qt.io/browse/QTBUG-60130,https://bugreports.qt.io/browse/QTBUG-52494,https://bugreports.qt.io/browse/QTBUG-28214)