我正在研究qt快速控制,但是QtQuick.Controls 1.4中的TableViewColumn出现问题。我想创建一个具有2个选项卡的TabView,如下图所示
首先,我用此代码创建了一个TabBar
TabBar {
id: tabBarScriptLinker
anchors.top: tbvDevices.bottom
anchors.topMargin: 10
anchors.left: tbvDevices.left
anchors.right: tbvDevices.right
position: TabBar.Header
TabButton{
height: parent.height
background: Rectangle{
color: tabBarScriptLinker.currentIndex == 0 ? qsTr("#5661f7") : qsTr("#ddd9f9")
}
contentItem: Text{
text: "Scence"
font.pixelSize: 12
font.bold: true
color: tabBarScriptLinker.currentIndex == 0 ? qsTr("white") : qsTr("black")
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
}
TabButton{
height: parent.height
background: Rectangle{
color: tabBarScriptLinker.currentIndex == 1 ? qsTr("#5661f7") : qsTr("#ddd9f9")
}
contentItem: Text{
text: "Linker"
font.pixelSize: 12
font.bold: true
color: tabBarScriptLinker.currentIndex == 1 ? qsTr("white") : qsTr("black")
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
}
}
此后,我继续创建一个StackLayout,然后在TabBar下面跟随一个表格视图
StackLayout{
anchors.top: tabBarScriptLinker.bottom
anchors.left: tabBarScriptLinker.left
anchors.right: tabBarScriptLinker.right
anchors.bottom: rLayoutScLiControl.top
anchors.bottomMargin: 10
currentIndex: tabBarScriptLinker.currentIndex
Item {
id: sceneTab
Layout.fillWidth: parent.width
Layout.fillHeight: parent.height
QtC1.TableView{
id: tbvScences
anchors.fill: parent
ListModel{
id: lstScences
ListElement{
num: 1
name: qsTr("on all")
}
ListElement{
num: 1
name: qsTr("off all")
}
}
/* Create columns */
QtC1.TableViewColumn{
id: tbvScences_num
horizontalAlignment: Text.AlignHCenter
role: qsTr("num")
title: qsTr("Num")
width: 40
}
QtC1.TableViewColumn{
id: tbvScences_Name
horizontalAlignment: Text.AlignHCenter
role: qsTr("name")
title: qsTr("Name")
width: 60
}
model: lstScences
}
}
Item {
id: linkerTab
Layout.fillWidth: parent.width
Layout.fillHeight: parent.height
QtC1.TableView{
id: tbvLinkers
anchors.fill: parent
ListModel{
id: lstLinkers
ListElement{
label: qsTr("Tang 4518")
MAC: qsTr("65-46-AF-4C-6B-91")
}
ListElement{
label: qsTr("Tang 56")
MAC: qsTr("25-02-AF-C8-6B-21")
}
}
/* Create columns */
QtC1.TableViewColumn{
id: tbvLinkers_Label
horizontalAlignment: Text.AlignLeft
role: qsTr("label")
title: qsTr("Label")
width: 100
}
QtC1.TableViewColumn{
id: tbvLinkers_MAC
horizontalAlignment: Text.AlignLeft
role: qsTr("MAC")
title: qsTr("MAC")
width: 120
}
model: lstLinkers
}
}
}
按我的预期工作正常,但出现了一些奇怪的日志
“应用程序输出”选项卡中的“ -2的模型大小小于0” 当我点击“链接器”标签时, 在“应用程序退出”选项卡中,“-3的模型大小小于0”
我认为我的申请有问题,有人可以给我原因吗?这个问题值得考虑吗?
感谢您的帮助!
答案 0 :(得分:0)
我试图通过一个简单的示例来重现该行为,并且当窗口的大小小于tableView的大小时,似乎会发生这种情况