【发布时间】:2018-09-11 03:25:27
【问题描述】:
你好,所以我有一个简单的脚本,它在 GUI 中显示 100 个元素,每个元素都有一个复选框,我可以选中这些框,它们确实会保持选中一段时间,但如果我向上或向下滚动直到它们退出从视图来看,它们将被重置(有时只会检查第一个元素)。 现在我知道在 ListView 中,元素一旦进入视图就会显示,并且我尝试了多种方法,例如增加 ListView 高度、ContentHeight,但没有任何效果。 这个问题是相同的,例如 RadioDelegate Main.py 文件:
from PyQt5.QtQml import QQmlApplicationEngine
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtCore import QObject, QUrl,QTimer
import sys
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine('main.qml')
sys.exit(app.exec_())
main.qml:
import QtQuick 2.0
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
ApplicationWindow {
visible: true
width: 400
height: 550
title: qsTr("Ttile")
ColumnLayout {
anchors.fill: parent
ListView {
id: listView
objectName : "lvob"
model: 100
delegate: CheckDelegate {
text: modelData
}
Layout.fillWidth: true
Layout.fillHeight: true
ScrollBar.vertical: ScrollBar {}
}
}
}
视频解说:Click Me
我做错了什么? 更新:经过更多研究后,我发现我必须将选中的项目存储在一个数组中,因为我对 python/qml 非常陌生,我该怎么做? 谢谢。
【问题讨论】:
标签: python listview pyqt qml pyqt5