[英]Is QML TableModel supported in PySide2?
我一直在使用 QML 进行 PySide2 编程。 就在我似乎掌握了一切,包括正确的视图/模型分离和理解 QML 概念和绑定时,我遇到了障碍。
我需要显示表格类型的数据,所以自然而然地跑到了QML表格Model。 但是,当我尝试从 Python 运行纯 QML 的简单示例时,我遇到了错误:
TableModelExample.qml:16 TableModel is not a type
qml 代码只是我在Qt 的 TableModel 文档中找到的第一个示例
python 代码非常简单:
import sys
import os
from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
if __name__ == "__main__":
# UI setup
sys.argv += ['--style', 'fusion']
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.load(os.path.join(os.path.dirname(__file__), "TableModelExample.qml"))
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec_())
谁能解释发生了什么? 而且,当人们在学习过程中达到这一点时,是否有任何好的 PySide2/QML 学习工具?
编辑:
虽然 QML 代码已链接,但这里是:
import QtQuick 2.12
import QtQuick.Window 2.12
import Qt.labs.qmlmodels 1.0
Window {
width: 400
height: 400
visible: true
TableView {
anchors.fill: parent
columnSpacing: 1
rowSpacing: 1
boundsBehavior: Flickable.StopAtBounds
model: TableModel {
TableModelColumn { display: "checked" }
TableModelColumn { display: "amount" }
TableModelColumn { display: "fruitType" }
TableModelColumn { display: "fruitName" }
TableModelColumn { display: "fruitPrice" }
// Each row is one type of fruit that can be ordered
rows: [
{
// Each property is one cell/column.
checked: false,
amount: 1,
fruitType: "Apple",
fruitName: "Granny Smith",
fruitPrice: 1.50
},
{
checked: true,
amount: 4,
fruitType: "Orange",
fruitName: "Navel",
fruitPrice: 2.50
},
{
checked: false,
amount: 1,
fruitType: "Banana",
fruitName: "Cavendish",
fruitPrice: 3.50
}
]
}
delegate: TextInput {
text: model.display
padding: 12
selectByMouse: true
onAccepted: model.display = text
Rectangle {
anchors.fill: parent
color: "#efefef"
z: -1
}
}
}
}
Pyside 版本:
pyside2 5.13.2 py37ha8f7116_2 conda-forge
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.