我希望TabView中的实际Tab内容能够锚定或排列到另一个可视元素的底部。在这种情况下,顶部的tabBar将与所讨论的另一个元素重叠。
我的问题是我不知道如何获取TabView的Tab内容的y坐标,或者如何获取tabBar中的tab按钮的高度,以便我可以根据它来偏移对齐。
我可以想出两种方法来解决这个问题,这两种方法都很笨重: 选项1 - 我可以创建一个没有内容的TabView,它位于我的其他元素中。然后我可以使用tabsVisible = false创建第二个TabView。然后将2连在一起。
选项2 - 我可以覆盖tab:在TabViewStyle中,从属性设置它的高度,这样我就可以根据tabBar高度偏移我的TabView.y。
选项3:以某种方式获取TabView内Tab选项卡的y坐标(相对于TabView或父项)或以某种方式获取现有选项卡(按钮)高度。我不知道如何做其中任何一个。
选项1和2看起来非常笨重。有任何想法吗?
答案 0 :(得分:0)
实际上,您可以非常轻松地获取此信息。 TabView
定义contentItem
属性,该属性包含选项卡视图的内容项。因此,标签按钮的高度为tabView.height - tabView.contentItem.height
示例:
import QtQuick 2.2
import QtQuick.Controls 1.1
Item {
width: 350
height: 150
TabView
{
id: tabview
height: parent.height
width: parent.width/2
Component.onCompleted: {addTab("1");addTab("2")}
}
Column
{
anchors.left: tabview.right
anchors.right: parent.right
Rectangle
{
width: parent.width
height: tabview.height-tabview.contentItem.height
color: "red"
}
Rectangle
{
width: parent.width
color: "yellow"
height: tabview.contentItem.height
}
}
}