在 QML 中,我使用SwipeView
实现了一个简单的应用程序:
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Window 2.2
Window {
visible: true
Rectangle{
id: bg
anchors.fill: parent
color: "red"
}
SwipeView {
id: swipeView
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: tabBar.top
currentIndex: tabBar.currentIndex
Page{
// Empty
}
Page{
Rectangle{
anchors.fill: parent
color:"purple"
}
}
}
TabBar {
id: tabBar
width: parent.width;
height: 30;
anchors.bottom: parent.bottom
currentIndex: swipeView.currentIndex
TabButton {
text: qsTr("Empty")
}
TabButton {
text: qsTr("Purple")
}
}
}
如果我移除SwipeView
红色背景Rectangle
节目,但只要SwipeView
存在,就会白色或紫色,具体取决于显示的页面。
选择了紫色页面:
选择空白页:
使用swipeview和tabbar注释掉:
那么,如何让红色背景透过(即使SwipeView
透明)?
答案 0 :(得分:1)
SwipeView
是透明的。 Page
实际上并非“空”。因为它继承了Control
,所以它具有背景属性。默认情况下,Page将Rectangle设置为背景。这就是为什么你看到空白标签的白色。 Page.qml Sourcecode
所以你可以这样做:
Page { background: null }
或:
Page {
background: Rectangle{
color:"transparent"
}
}