ReferenceError: "something" is not defined in QML
pyqt5, python, python-3.3, qml, qt
Solution
You need to set the context property before you call `View.setSource`, otherwise at the moment the qml file is read the property `ggg` is indeed not defined.
Try this:
App = QGuiApplication(sys.argv)
View = QQuickView()
Context = View.rootContext()
GlobalConfig = Config('sc').getGlobalConfig()
print (GlobalConfig, type(GlobalConfig))
Context.setContextProperty('ggg', GlobalConfig)
View.setSource(QUrl('views/sc_side/Main.qml'))
View.setResizeMode(QQuickView.SizeRootObjectToView)
View.showFullScreen()
sys.exit(App.exec_())
Disclaimer: without knowing what `Config` is, I can't say if it will really work without any other modification.
Problem
I have Main.qml file like this: ``` import QtQuick 2.0 Rectangle { color: ggg.Colors.notificationMouseOverColor width: 1024 height: 768 } ``` in python file, i have this(i use form PyQt5): ``` App = QGuiApplication(sys.argv) View = QQuickView() View.setSource(QUrl('views/sc_side/Main.qml')) Context = View.rootContext() GlobalConfig = Config('sc').getGlobalConfig() print (GlobalConfig, type(GlobalConfig)) Context.setContextProperty('ggg', GlobalConfig) View.setResizeMode(QQuickView.SizeRootObjectToView) View.showFullScreen() sys.exit(App.exec_()) ``` this python code print this for config: ``` {'Colors': {'chatInputBackgroundColor': '#AFAFAF', 'sideButtonSelectedColor': '#4872E8', 'sideButtonTextColor': '#787878', 'sideButtonSelectedTextColor': '#E2EBFC', 'sideButtonMouseOverColor': '#DDDDDD', 'buttonBorderColor': '#818181', 'notificationMouseOverColor': '#383838', }} <class 'dict'> ``` when i run this code, my rectangle color change correctly, but i have this error: ``` file:///.../views/sc_side/Main.qml:6: ReferenceError: ggg is not defined ``` but i don't know why this error happend, how i can fix this error?