QQuickWidget
の背景を透明にする問題があります。QQuickWidgetの背景をブレーク・スタッキング・オーダーなしで透明にすることができません。
QWidget
の下にQQuickWidget
を配置します。 QQuickWidget
は、ソースqmlファイルを使用します。私がQt 4.8で作業したとき、私はQDeclarativeView
を使用しました。 Qt 4からQt 5への移植は、QDeclarativeView
は使用されなくなりました。次のようにそのため、私は、代わりにQDeclarativeView
のQQuickWidget
を使用しています:
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);");
私が行う場合:
setAttribute(Qt::WA_AlwaysStackOnTop, true);
は、背景が透明になりますが、内部QQuickWidget
下に他のウィジェットを含む積層順を破る
QWidget
の下にあるときはQQuickWidget
を透明にしたいと考えています。これは可能ですか?そうでない場合は、どのような回避策を提案しますか?
(1)これはmainWidgetの背景画像である:
(2)これはQQuickWidgetの背景です。 QMLファイルには、このイメージを使用します。
(3)これはtopWidgetの背景画像です:
(4)私が欲しいもの:
( 5)WA_AlwaysStackOnTop
をfalseに設定した場合:
(6)私はWA_AlwaysStackOnTop
真として、私が設定したときに何を得る:重なり順で破壊することは可能であることを述べている
なぜあなたは、QQuickWidgetが透明であるかどうかを気にしていますか?部分的にしか見えないのですか?また、部分的に見える部分がまったく見えないようにしたいのですか? – Sabuncu
私はあなたの質問を編集しましたが、この部分:「同じウィンドウ内のQQuickWidgetの下にある他のウィジェットを含む」を見直してください。元の文は動詞(「fiil」)を持たなかったので、文脈に基づいてその意味を外挿しました。 – Sabuncu
WA_AlwaysStackOnTopが使用されているときに、問題を示すスクリーンショットを提供するのに役立ちます。 imgurのスクリーンキャプチャへのリンクを提供して、それを質問の本文に入れます。 – Sabuncu