CustomVariables.py
Code: Select all
from PySide6.QtCore import QObject, Property, Signal
class CustomVariables(QObject):
def __init__(self):
QObject.__init__(self)
self.loaderSource = 'PageWork.qml'
def get_loaderSource(self):
return self._loaderSource
def set_loaderSource(self, new_loaderSource):
self._loaderSource = new_loaderSource
self.loaderSourceChanged.emit()
loaderSourceChanged = Signal()
loaderSource = Property(str, get_loaderSource, set_loaderSource, notify=loaderSourceChanged)
Code: Select all
import sys
from pathlib import Path
from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine
from PySide6.QtCore import QObject, Property, Signal
from CustomVariables import CustomVariables
class BG(QObject):
def __init__(self):
QObject.__init__(self)
# self.loaderSource = 'PageWork.qml'
cv = CustomVariables()
# def get_loaderSource(self):
# return self._loaderSource
# def set_loaderSource(self, new_loaderSource):
# self._loaderSource = new_loaderSource
# self.loaderSourceChanged.emit()
# loaderSourceChanged = Signal()
# loaderSource = Property(str, get_loaderSource, set_loaderSource, notify=loaderSourceChanged)
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
background = BG()
engine.rootContext().setContextProperty("bg", background)
qml_file = Path(__file__).resolve().parent / "main.qml"
engine.load(qml_file)
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec())
Code: Select all
import QtQuick.Controls.FluentWinUI3
import QtQuick
Window {
id: root
width: 1280
height: 720
visible: true
Loader {
id: projectLoader
anchors.fill: parent
asynchronous: true
source: bg.cv.loaderSource
//source: bg.loaderSource
}
}
Code: Select all
self.cv = CustomVariables()