• 3146阅读
  • 6回复

[提问]QtQuick listview超出Rectangle的边界范围显示 [复制链接]

上一主题 下一主题
离线三只小鸡
 

只看楼主 倒序阅读 楼主  发表于: 2020-06-12
  1. ListModel{
  2.                     id: ignoreListModel
  3.                 }
  4.                 Rectangle{
  5.                     border.width: 1; border.color: "#A9A9A9"
  6.                     Layout.minimumWidth: 150
  7.                     Layout.minimumHeight: 100
  8.                     ListView{
  9. model: ignoreListModel
  10.     id: listWidget
  11.     anchors.fill: parent
  12.     ScrollBar.vertical: ScrollBar{
  13.          policy: ScrollBar.AlwaysOn
  14.     }
  15.     delegate: Rectangle{
  16.         id: rectangle
  17.         width: listWidget.width
  18.         height: UIDefined._ListItemHeight
  19.         anchors.left: parent.left
  20.         property bool hovered: false
  21.         border.color: UIDefined._HeightLightColor
  22.         border.width: hovered ? UIDefined._ListItemBorderWidth : 0
  23.         color:{
  24.             if(listWidget.currentIndex === index)
  25.                 return UIDefined._PressedBgColor;
  26.             else if(hovered)
  27.                 return UIDefined._HoveredBgColor
  28.             else
  29.                 return UIDefined._FreeBgColor
  30.         }
  31.         Text {
  32.             text: name
  33.             verticalAlignment: Text.AlignVCenter
  34.             horizontalAlignment: Text.AlignLeft
  35.             anchors.fill: parent
  36.             anchors.leftMargin: 5
  37.             font.bold: (hovered || listWidget.currentItem == rectangle)
  38.             color: UIDefined._UserTextColor
  39.         }
  40.         MouseArea{
  41.             anchors.fill: parent; hoverEnabled: true
  42.             onEntered: {hovered = true}
  43.             onExited: {hovered = false}
  44.             onClicked: {listWidget.currentIndex = index}
  45.         }
  46.     }
  47. }
  48.                 }
如图所示,当model的item多时,会超过Rectangle显示多一个,下拉时上方也会超过显示范围,如何使得listview不超出Rectangle的范围显示呢?

离线lemonzll

只看该作者 1楼 发表于: 2020-06-12
ListView加个属性clip: true就好了
离线三只小鸡

只看该作者 2楼 发表于: 2020-06-12
回 lemonzll 的帖子
lemonzll:ListView加个属性clip: true就好了 (2020-06-12 09:49) 

可以了,谢谢
离线三只小鸡

只看该作者 3楼 发表于: 2020-06-12
回 lemonzll 的帖子
lemonzll:ListView加个属性clip: true就好了 (2020-06-12 09:49) 

你好,我加了clip后鼠标滚动无效了,是会这样子的吗?
离线三只小鸡

只看该作者 4楼 发表于: 2020-06-12
回 三只小鸡 的帖子
三只小鸡:你好,我加了clip后鼠标滚动无效了,是会这样子的吗? (2020-06-12 10:40) 

这个qml有毒啊,我都没有改动,只改了其它东西,编译了几次它,突然就好用了,界面不超了,鼠标也可以滚动了,真奇怪,只是不知道原因,说不定以后又会发生
离线青空飞羽

只看该作者 5楼 发表于: 2020-06-12
qml工程qml文件每次有改动后最好清理工程后重新构建,不然有时改动会不生效
离线三只小鸡

只看该作者 6楼 发表于: 2020-06-12
回 青空飞羽 的帖子
青空飞羽:qml工程qml文件每次有改动后最好清理工程后重新构建,不然有时改动会不生效 (2020-06-12 14:08) 

嗯,谢谢回复,我也发现确实是这样,一般改了qml不用清理的,但有些时候确实改了直接运行不生效,清理工程就好了
快速回复
限100 字节
 
上一个 下一个