我看到一些用 c++ 风格编写的代码,我尝试用 python 风格编写它。
我在 python 文件中编写了一个表模型,然后将其传递给 qml 文件。
但是当我运行我的main.py
文件时,窗口什么也没有显示。
而且我的程序没有显示任何错误,我不知道这里出了什么问题?有人可以知道原因吗?
主文件
import os
from pathlib import Path
import sys
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQml import QQmlApplicationEngine
from PyQt5.QtCore import QAbstractTableModel, Qt
class TableModel(QAbstractTableModel):
def __init__(self):
super().__init__()
def rowCount(self, parent):
return 10
def columnCount(self, parent) -> int:
return 10
def data(self, index, role: int):
if index.isValid() and role == Qt.DisplayRole:
return f"{index.row()},{index.column()}"
return None
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.rootContext().setContextProperty('myModel', TableModel())
engine.load(os.fspath(Path(__file__).resolve().parent / "table.qml"))
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec_())
表.qml
import QtQuick 2.15
import QtQuick.Window 2.15
Window {
width: 320
height: 320
visible: true
TableView {
anchors.fill: parent
rowSpacing: 5
columnSpacing: 5
model: myModel
delegate: myDele
}
Component {
id: myDele
Rectangle {
implicitHeight: 50
implicitWidth: 50
width: 50
height: 50
color: "#abc"
Text {
anchors.centerIn: parent
text: display
}
}
}
}