Qt QML中没有内容的选项卡视图
我想为用户提供一个选项卡栏来选择要筛选的元素之一Qt QML中没有内容的选项卡视图,qt,tabs,qml,qt5,qtquick2,Qt,Tabs,Qml,Qt5,Qtquick2,我想为用户提供一个选项卡栏来选择要筛选的元素之一 ColumnLayout { anchors.fill: parent TabView { Layout.fillWidth: true Tab { title: "all" } Tab { title: "even" } Tab { title: "odd" } Tab { title: "multiple of 3" } T
ColumnLayout
{
anchors.fill: parent
TabView
{
Layout.fillWidth: true
Tab { title: "all" }
Tab { title: "even" }
Tab { title: "odd" }
Tab { title: "multiple of 3" }
Tab { title: "prime" }
}
TableView
{
Layout.fillHeight: true
Layout.fillWidth: true
model: mymodel
TableViewColumn
{
role: "name"
title: "name"
}
TableViewColumn
{
role: "number"
title: "number"
}
}
}
不幸的是,在TabBar和TableView之间显示了大约100px的空白
我不想创建4个表视图-我宁愿修改模型。我知道QtQuick.Controls.Private
中有TabBar
,但我宁愿避免使用私有组件,因为它们可以随时更改
有没有办法只显示选项卡栏而不访问私有组件,例如隐藏空白
我不想改写风格,因为在Android上,它会给我可怕的、非本地的外观据我所知,没有可靠的方法来实现这一点 不过,还有一种依赖于平台/DPI的黑客攻击。您可以使用滑块计算理想高度:
import QtQuick 2.3
import QtQuick.Window 2.2
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.2
Window {
id: window
visible: true
width: 400
height: 400
ColumnLayout {
anchors.fill: parent
spacing: 0
TabView {
Layout.fillWidth: true
Layout.preferredHeight: s.value
Tab {
title: "all"
}
Tab {
title: "even"
}
Tab {
title: "odd"
}
Tab {
title: "multiple of 3"
}
Tab {
title: "prime"
}
}
TableView {
Layout.fillHeight: true
Layout.fillWidth: true
model: ListModel {
ListElement {
name: "A"
title: "1"
}
ListElement {
name: "B"
title: "2"
}
ListElement {
name: "C"
title: "3"
}
}
TableViewColumn {
role: "name"
title: "name"
}
TableViewColumn {
role: "number"
title: "number"
}
}
}
Slider {
id: s
minimumValue: 0
maximumValue: 50
anchors.bottom: parent.bottom
Text {
text: s.value.toFixed(0)
anchors.left: parent.right
}
}
}
对我来说,在桌面上,它是29像素。但它不是便携式的。在Android上,我必须支持多个屏幕和各种DPINOP,但事实并非如此。它很黑。嗯。。。是否可以使内容非常小,例如1px高?
选项卡的内容
?contentItem
属性是只读的,所以不是。下面是您的答案:P