machen Ich habe ein Problem, das QQuickWidget
Hintergrund transparent.Kann QQuickWidget Hintergrund transparent ohne Unterbrechung Stapelreihenfolge
Ich möchte eine QQuickWidget
unter einer QWidget
platzieren. Das QQuickWidget
verwendet eine Quell-qml-Datei. Als ich mit Qt 4.8 arbeitete, benutzte ich QDeclarativeView
. Portierung von Qt 4 auf Qt 5, QDeclarativeView
wird nicht mehr verwendet. Daher verwende ich QQuickWidget
statt QDeclarativeView
wie folgt:
QWidget *mainWidget = new QWidget();
mainWidget->setStyleSheet("background-image: url(:/background.png);");
QQuickWidget *quick = new QQuickWidget(mainWidget);
quick->setAttribute(Qt::WA_TranslucentBackground, true);
quick->setAttribute(Qt::WA_AlwaysStackOnTop, true);
quick->setClearColor(Qt::transparent);
quick->setSource(QUrl("qrc:/image.qml"));
QWidget *topWidget = new QWidget(mainWidget);
topWidget->setStyleSheet("background-image: url(:/semitransparent.png);");
Wenn ich tun:
setAttribute(Qt::WA_AlwaysStackOnTop, true);
dann wird der Hintergrund transparent, aber bricht die Stapelreihenfolge der anderen Widgets unterhalb der QQuickWidget
innerhalb Beteiligung das gleiche Fenster.
Ich möchte ein QQuickWidget
transparent machen, wenn es unter einem QWidget
ist. Ist das möglich? Wenn nicht, welche Workarounds schlagen Sie vor?
(1) Dies ist mainWidget des Hintergrundbild:
(2) Dies ist Hintergrund des QQuickWidget. qml Datei dieses Bild verwenden:
(3) Dies ist topWidget des Hintergrundbild:
(4) Was ich will:
(5) Was ich bekomme, wenn ich WA_AlwaysStackOnTop
als falsch einstelle:
(6) Was ich bekomme, wenn ich WA_AlwaysStackOnTop
als wahr gesetzt:
Warum interessieren Sie sich, ob die QQuickWidget transparent ist oder nicht, da es an der Unterseite ist? Ist es nur teilweise sichtbar und Sie möchten sicherstellen, dass auch die teilweise sichtbaren Teile überhaupt nicht gesehen werden? – Sabuncu
Ich habe Ihre Frage bearbeitet, aber bitte lesen Sie diesen Teil: "die anderen Widgets unter dem QQuickWidget im selben Fenster einbeziehen." Der ursprüngliche Satz hatte kein Verb ("fiil"), also extrapolierte ich die Bedeutung basierend auf dem Kontext. – Sabuncu
Es würde helfen, einen Screenshot bereitzustellen, der das Problem zeigt, wenn 'WA_AlwaysStackOnTop' verwendet wird. Stellen Sie eine Verbindung zu einer imgur Bildschirmaufnahme her und ich werde es in den Körper der Frage einsetzen. – Sabuncu