如何在多行中安排TabView的选项卡?

时间:2015-03-18 08:44:32

标签: qt qml qt5 qtquick2 qtquickcontrols

来自: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" }
    }
}

这些标签默认显示在水平栏中。如何在单独的行中显示它们?

像这样:
TAB1
TAB2
Tab3

而不是:
Tab1 Tab2 Tab3

2 个答案:

答案 0 :(得分:5)

您需要隐藏标准标签栏,并创建自己的垂直条。

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" }
        }
    }
}

答案 1 :(得分:0)

我不是百分之百确定你想在这里实现什么,但是我不久前就向我提出了类似的要求,并且在设计师中很容易解决。在QTabWidget的属性部分中,第一个选项应该是tabPosition。

如果您将tabPosition设置为“West”,它会在窗口小部件的左侧垂直排列标签,但文本也会侧身,不知道这是否对您来说是一个问题,它不是我的情况。我会发布截图,但我的代表太低了。