0
PyQt5とQMLの統合が初めてのことです。私はその問題について長い間捜し求めてきましたが、私のケースに十分近いシナリオを見つけることはできません。PythonのPyQt5とQMLの統合で、 "findChild"がAttributeErrorを返す
私がいるエラーは、(私はPyCharmを使用しています)以下の通りです:ここでは
File "D:/PyCharmProjects/SimpleQML.py", line 13, in __init__
self.win = self.root.findChild(QObject, "mainWindow")AttributeError: 'NoneType' object has no attribute 'findChild'
は私のpythonのコードです:ここで
import sys
from PyQt5.QtCore import QUrl, QObject
from PyQt5.QtWidgets import QApplication
from PyQt5.QtQuick import QQuickView
class SimpleQML(QQuickView):
def __init__(self, parent=None):
super(SimpleQML, self).__init__(parent)
self.setSource(QUrl.fromLocalFile("D:/Qt/SimpleQML/SimpleQML.qml"))
self.root = self.rootObject()
self.win = self.root.findChild(QObject, "mainWindow")
if __name__ == '__main__':
app = QApplication(sys.argv)
win = SimpleQML()
win.setTitle("SimpleQML")
win.setResizeMode(QQuickView.SizeRootObjectToView)
win.show()
sys.exit(app.exec_())
は私の(本当に簡単)QMLコードです:
import QtQuick 2.6
import QtQuick.Window 2.2
Rectangle{
id: mainWindow
objectName: "mainWindow"
visible: true
width: 400
height: 400
color: "#323232"
}
また、QMLとPyQt5の統合に関するアドバイスがありましたら、それは歓迎する以上のものです。
ありがとうございます!
こんにちは!答えてくれてありがとう! 残念ながら、 "print(self.root.objectName())"を試みても動作しません。 'NoneType'オブジェクトには 'objectName'という属性はありません そして、奇妙なことは私がしばらくコードを使用していたことですが、もう動作しませんでした。 一番不満なことは、私が友達にそれを与えたことです。私は何が起こっているのか分かりませんxD – Eph
本当ですか?ドライブ、ドロップボックスなどでコードを共有できます – eyllanesc
pyqtを再インストールしてみてください。 – eyllanesc