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
을 투명하게 만들고 싶습니다. 이것이 가능한가? 그렇지 않은 경우 어떤 해결 방법을 제안합니까?
(2)이 QQuickWidget의 배경입니다 :
(1)이 mainWidget의 배경 이미지입니다. QML 파일이 이미지를 사용 :
(3)이 topWidget의 배경 이미지입니다 :
(4) 내가 원하는 무엇 :
(5) WA_AlwaysStackOnTop
을 false로 설정하면 어떻게됩니까? :
(6) 내가 WA_AlwaysStackOnTop
사실 로 내가 설정하면 무엇을 얻을 : 스택 순서의 위반시되어야 함을 말한다
왜 당신이 아래쪽에 있기 때문에 QQuickWidget이 투명인지 아닌지 걱정합니까? 부분적으로 만 보일 수 있습니까? 그리고 부분적으로 보이는 부분조차도 전혀 보이지 않도록하고 싶습니까? – Sabuncu
귀하의 질문을 편집했으나이 부분을 검토하십시오 : "동일한 창 내부의 QQuickWidget 아래에 다른 위젯이 관련되어 있습니다." 원래 문장에는 동사 ("fiil")가 없었으므로 문맥에 따라 의미를 추정했습니다. – Sabuncu
WA_AlwaysStackOnTop이 사용될 때 문제를 보여주는 스크린 샷을 제공하는 것이 도움이 될 것입니다. imgur 화면 캡처에 대한 링크를 제공하고 질문의 본문에 넣을 것입니다. – Sabuncu