来源:http://doc.qt.io/qt-5/qml-qtquick-controls-tabview.html#details
TabView
{
Tab {
title: "Red"
Rectangle { color: "red" }
}
Tab {
title: "Blue"
Rectangle { color: "blue" }
}
Tab {
title: "Green"
Rectangle { color: "green" }
}
}
默认情况下,这些选项卡显示在水平条中。如何将它们显示在单独的行中?
像这样:
表1
表2
表3
而不是:
表1表2表3
您需要隐藏标准的选项卡栏,并创建自己的垂直栏。
Row {
Column {
Repeater {
model: view.count
Rectangle {
width: 100
height: 40
border.width: 1
Text {
anchors.centerIn: parent
text: view.getTab(index).title
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: view.currentIndex = index
}
}
}
}
TabView {
id: view
style: TabViewStyle {
tab: Item {}
}
Tab {
title: "Red"
Rectangle { color: "red" }
}
Tab {
title: "Blue"
Rectangle { color: "blue" }
}
Tab {
title: "Green"
Rectangle { color: "green" }
}
}
}
我不能100%确定你想在这里实现什么,但不久前我也有一个类似的要求,设计师很容易就解决了。在QTabWidget的属性部分,第一个选项应该是tabPosition。
如果你将tabPosition设置为"West",它会在小部件的左侧垂直排列选项卡,但文本也会横向排列,不知道这是否是你的问题,在我的情况下不是。我会发布截图,但我的代表性太低了。