QML:只有一行可见 TableView 与行和项目委托
Posted
技术标签:
【中文标题】QML:只有一行可见 TableView 与行和项目委托【英文标题】:QML: Only One Row visible TableView with Row and Item Delegates 【发布时间】:2014-09-13 05:51:21 【问题描述】:在以下代码中:
Rectangle
width: parent==null ? 640: parent.width
height: parent==null ? 480: parent.height
Image
id: mainBackground
anchors.fill: parent
source: "qrc:///wallDiscoveryBackground"
fillMode: Image.PreserveAspectFit
TableView
id: wallDiscoveryTable
anchors.margins: parent.width * 0.6
width: parent.width
clip: true
model: discoveredWallsTableModel
TableViewColumn role: "name"; width: 240; title: "Name"
TableViewColumn role: "ipAddress"; width: 240; title: "IP Address"
TableViewColumn role: "status"; width: 240; title: "Status"
rowDelegate: wallDiscoveryRowDelegate //comment out
itemDelegate: wallDiscoveryItemDelegate //comment out
Component
id: wallDiscoveryRowDelegate
Rectangle
width: wallDiscoveryTable.width
height: 640
Component
id: wallDiscoveryItemDelegate
Text
anchors.verticalCenter: parent.verticalCenter
color: styleData.textColor
text: styleData.value
如果我注释掉设置行和项目代表的行(我用“//comment out”标记的行),那么表格渲染得很好,表明我指定的模型是正确的。但是,当我设置行和项目委托时,我只获得了呈现的表格的第一行。
有人可以指出第二种情况(使用行和项目代表)有什么问题吗?
【问题讨论】:
【参考方案1】:您的代表很大。 640 像素是大多数屏幕高度的一半以上。由于模型不存在,您的代码无法正常运行,但如果我使用虚拟模型并将高度降低到 100 像素,我会看到其他项目。此外,即使使用当前代码,您也应该能够向下滚动以查看其他项目。
【讨论】:
以上是关于QML:只有一行可见 TableView 与行和项目委托的主要内容,如果未能解决你的问题,请参考以下文章
如何在鼠标事件上更改 QML 的 TableView 中一行的颜色?