我不知道爲什麼或如何發生,但Z順序完全搞砸了。這是顯示我的問題的最小例子。測試機器正在Windows 8 x64,Qt 5.1上運行。奇怪的圖像行爲(Qt快速2)
import QtQuick 2.0
Item {
id: root;
width: 800;
height: 800;
Background {
id: background;
anchors.fill: root;
imageSource: "backgrounds/1.jpg";
}
MainView {
id: mainView;
anchors.fill: root;
}
BottomBar {
id: bottomBar;
anchors.bottom: root.bottom;
anchors.left: root.left;
anchors.right: root.right;
height: 75;
}
這裏是背景:
import QtQuick 2.0
import QtGraphicalEffects 1.0
Item {
id: root;
property alias imageSource: imageItem.source;
Image {
id: imageItem;
anchors.fill: root;
fillMode: Image.PreserveAspectCrop;
visible: false;
}
GaussianBlur {
anchors.fill: root;
source: imageItem;
radius: 12;
samples: 12;
deviation: 5;
cached: true;
}
}
的MainView:
import QtQuick 2.0
Item {
id: root;
Rectangle {
anchors.centerIn: root;
width: 500;
height: 500;
color: "red";
}
}
而且BottomBar:
import QtQuick 2.0
Item {
id: root;
Rectangle {
anchors.fill: root;
color: Qt.rgba(.07, .07, .07, .95);
}
的應紅色正方形居中在1.JPG的中間以及底部的75px高度線它,但方形是沒有看到。
但是,如果我刪除背景元素,一切都很好。
感謝您的幫助。
感謝您的幫助。這並沒有改變,但我解決了這個問題。不透明度有問題。可能是基於[QuickWidget](https://code.google.com/p/quickwidget/)用於QQuickWindow支持不透明度(透明背景)的封裝器中的一個錯誤。解決方法是將不透明度設置爲0.99,如果你想要不透明的項目 – Sh1ne
嗯..實際上,我記得閱讀了一些與不透明度有關的bug,通過0.99技巧解決了這個問題,導致所有內容都是「alpha混合」而不是「沿Z順序覆蓋」 。但我不認爲這是事實。 IIRC,當你實際上有透明的東西時,這個錯誤就會顯示出來,而你的佈局看起來似乎不是(hm,可見的:在imageItem上是false,也許?)。無論如何,很高興聽到你找到它。請寫一個簡短的答案,並在幾天後接受它作爲解決方案(我的意思是,你自己的答案),它會將線程標記爲「已解決」。 – quetzalcoatl
我有很多元素透明,我也有可見的設置爲圖像上的錯誤,因爲我使用了GaussianBlur。但事實並非如此。即使我把它設置爲假,一切都會變得模糊起來。 – Sh1ne