Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt ListView中的顶部项完全消失,即使只是部分超出边界。我怎样才能解决这个问题?_Qt_Qml - Fatal编程技术网

Qt ListView中的顶部项完全消失,即使只是部分超出边界。我怎样才能解决这个问题?

Qt ListView中的顶部项完全消失,即使只是部分超出边界。我怎样才能解决这个问题?,qt,qml,Qt,Qml,我正在学习使用Qt和QML。现在,我正在尝试使用一个ListView,我大部分时间都在使用它,除了这个小小的视觉缺陷 当我运行代码时,起初它看起来很好。但是如果我滚动一点,上面的项目就会完全消失。它只有在向后滚动到完全在范围内时才会再次出现。与此同时,名单上只有一个难看的空白点。当每件物品超过上限时,都会发生这种情况 我希望这些项目是部分绘制。库显然能够做到这一点,因为这个问题不会发生在下限中,但我根本不知道如何做到这一点 以下是我的代码的简化版本: import QtQuick 2.12 im

我正在学习使用Qt和QML。现在,我正在尝试使用一个ListView,我大部分时间都在使用它,除了这个小小的视觉缺陷

当我运行代码时,起初它看起来很好。但是如果我滚动一点,上面的项目就会完全消失。它只有在向后滚动到完全在范围内时才会再次出现。与此同时,名单上只有一个难看的空白点。当每件物品超过上限时,都会发生这种情况

我希望这些项目是部分绘制。库显然能够做到这一点,因为这个问题不会发生在下限中,但我根本不知道如何做到这一点

以下是我的代码的简化版本:

import QtQuick 2.12
import QtQuick.Controls 2.12

ApplicationWindow {
    id: window
    width: 360
    height: 520
    visible: true
    title: "Qml.Net"

    ListView {
        anchors.fill: parent
        spacing: 100
        model: ["#111111", "#222222", "#333333", "#444444", "#555555", "#666666"]  


        delegate: Item {
            Rectangle {
                width: 400
                height: 100
                color: modelData

                Text {
                    anchors.centerIn: parent
                    text: modelData
                }
            }
        }
    }
}
下面是一些问题的图片。第一个图像正确,第二个图像显示错误。另外,请注意底部项目是如何正确绘制的

先纠正

稍微滚动一下就错了

  • Qt 5.12

该问题是由“spacing”属性引起的,该属性在您的案例中是不必要的。解决方案是删除该属性并按如下方式重写逻辑:

import QtQuick 2.12
import QtQuick.Controls 2.12

ApplicationWindow {
    id: window
    width: 360
    height: 520
    visible: true
    title: "Qml.Net"

    ListView {
        anchors.fill: parent
        model: ["#111111", "#222222", "#333333", "#444444", "#555555", "#666666"]  

        delegate: Rectangle {
            width: parent.width
            height: 100
            color: modelData
            Text {
                anchors.centerIn: parent
                text: modelData
            }
        }
    }
}

好的,完成了。我正在导入QtQuick 2.12和QtQuick.Controls 2.12,并使用Qt 5.12.mmm,拖动鼠标以生成第二幅图像中显示的内容。我拖下去,没有注意到问题,但如果我拖上去,我只注意到你说的话。是的,谢谢!我设置了spacing属性,因为在我之前的测试中,如果我没有设置它,瓷砖将彼此重叠。我不知道当时和你的例子有什么区别,但肯定是我做错了。你的回答非常有效。非常感谢你的耐心和帮助!问题更多地是因为包装
意味着代理的高度为0。间隔就是这样的结果,使它在某种程度上起作用