本文整理汇总了Python中PyQt5.QtQml.QQmlApplicationEngine方法的典型用法代码示例。如果您正苦于以下问题:Python QtQml.QQmlApplicationEngine方法的具体用法?Python QtQml.QQmlApplicationEngine怎么用?Python QtQml.QQmlApplicationEngine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.QtQml
的用法示例。
在下文中一共展示了QtQml.QQmlApplicationEngine方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: main
# 需要导入模块: from PyQt5 import QtQml [as 别名]
# 或者: from PyQt5.QtQml import QQmlApplicationEngine [as 别名]
def main():
app = QGuiApplication(sys.argv)
qmlRegisterType(FigureCanvasQTAggToolbar, "Backend", 1, 0, "FigureToolbar")
imgProvider = MatplotlibIconProvider()
engine = QQmlApplicationEngine(parent=app)
engine.addImageProvider("mplIcons", imgProvider)
context = engine.rootContext()
data_model = DataSeriesModel()
context.setContextProperty("dataModel", data_model)
mainApp = Form(data=data_model)
context.setContextProperty("draw_mpl", mainApp)
engine.load(QUrl('main.qml'))
win = engine.rootObjects()[0]
mainApp.figure = win.findChild(QObject, "figure").getFigure()
rc = app.exec_()
sys.exit(rc)
示例2: initializeEngine
# 需要导入模块: from PyQt5 import QtQml [as 别名]
# 或者: from PyQt5.QtQml import QQmlApplicationEngine [as 别名]
def initializeEngine(self) -> None:
# TODO: Document native/qml import trickery
self._qml_engine = QQmlApplicationEngine(self)
self.processEvents()
self._qml_engine.setOutputWarningsToStandardError(False)
self._qml_engine.warnings.connect(self.__onQmlWarning)
for path in self._qml_import_paths:
self._qml_engine.addImportPath(path)
if not hasattr(sys, "frozen"):
self._qml_engine.addImportPath(os.path.join(os.path.dirname(__file__), "qml"))
self._qml_engine.rootContext().setContextProperty("QT_VERSION_STR", QT_VERSION_STR)
self.processEvents()
self._qml_engine.rootContext().setContextProperty("screenScaleFactor", self._screenScaleFactor())
self.registerObjects(self._qml_engine)
Bindings.register()
# Preload theme. The theme will be loaded on first use, which will incur a ~0.1s freeze on the MainThread.
# Do it here, while the splash screen is shown. Also makes this freeze explicit and traceable.
self.getTheme()
self.processEvents()
i18n_catalog = i18nCatalog("uranium")
self.showSplashMessage(i18n_catalog.i18nc("@info:progress", "Loading UI..."))
self._qml_engine.load(self._main_qml)
self.engineCreatedSignal.emit()
示例3: main
# 需要导入模块: from PyQt5 import QtQml [as 别名]
# 或者: from PyQt5.QtQml import QQmlApplicationEngine [as 别名]
def main():
argv = sys.argv
# Trick to set the style / not found how to do it in pythonic way
argv.extend(["-style", "universal"])
app = QGuiApplication(argv)
qmlRegisterType(FigureCanvasQTAggToolbar, "Backend", 1, 0, "FigureToolbar")
imgProvider = MatplotlibIconProvider()
# !! You must specified the QApplication as parent of QQmlApplicationEngine
# otherwise a segmentation fault is raised when exiting the app
engine = QQmlApplicationEngine(parent=app)
engine.addImageProvider("mplIcons", imgProvider)
context = engine.rootContext()
data_model = DataSeriesModel()
context.setContextProperty("dataModel", data_model)
mainApp = Form(data=data_model)
context.setContextProperty("draw_mpl", mainApp)
engine.load(QUrl('main.qml'))
win = engine.rootObjects()[0]
mainApp.figure = win.findChild(QObject, "figure").getFigure()
rc = app.exec_()
# There is some trouble arising when deleting all the objects here
# but I have not figure out how to solve the error message.
# It looks like 'app' is destroyed before some QObject
sys.exit(rc)
示例4: main_gui
# 需要导入模块: from PyQt5 import QtQml [as 别名]
# 或者: from PyQt5.QtQml import QQmlApplicationEngine [as 别名]
def main_gui(args: argparse.Namespace):
QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
app = QApplication(sys.argv)
loop = QEventLoop(app)
asyncio.set_event_loop(loop)
# Check environment first
from PyQt5.QtWidgets import QMessageBox, QSystemTrayIcon
def dialog(message: str) -> None:
QMessageBox.critical(None, "VirtScreen", message)
if not QSystemTrayIcon.isSystemTrayAvailable():
dialog("Cannot detect system tray on this system.")
sys.exit(1)
check_env(args, dialog)
app.setApplicationName("VirtScreen")
app.setWindowIcon(QIcon(ICON_PATH))
os.environ["QT_QUICK_CONTROLS_STYLE"] = "Material"
# Register the Python type. Its URI is 'People', it's v1.0 and the type
# will be called 'Person' in QML.
qmlRegisterType(DisplayProperty, 'VirtScreen.DisplayProperty', 1, 0, 'DisplayProperty')
qmlRegisterType(Backend, 'VirtScreen.Backend', 1, 0, 'Backend')
qmlRegisterType(Cursor, 'VirtScreen.Cursor', 1, 0, 'Cursor')
qmlRegisterType(Network, 'VirtScreen.Network', 1, 0, 'Network')
# Create a component factory and load the QML script.
engine = QQmlApplicationEngine()
engine.load(QUrl(MAIN_QML_PATH))
if not engine.rootObjects():
dialog("Failed to load QML")
sys.exit(1)
sys.exit(app.exec_())
with loop:
loop.run_forever()
示例5: __init__
# 需要导入模块: from PyQt5 import QtQml [as 别名]
# 或者: from PyQt5.QtQml import QQmlApplicationEngine [as 别名]
def __init__(self, root, source):
super(Application, self).__init__(sys.argv)
self.setWindowIcon(QtGui.QIcon(ICON_PATH))
pixmap = QtGui.QPixmap(SPLASH_PATH)
splash = QtWidgets.QSplashScreen(pixmap)
splash.show()
self._splash = splash
engine = QtQml.QQmlApplicationEngine()
engine.objectCreated.connect(self.on_object_created)
engine.warnings.connect(self.on_warnings)
engine.addImportPath(QML_IMPORT_DIR)
self._splash.showMessage("Connecting database...",
QtCore.Qt.AlignBottom, QtCore.Qt.black)
try:
io.install()
except IOError:
raise # Server refused to connect
# Install actions
from . import install
install()
self._splash.showMessage("Starting Avalon Launcher...",
QtCore.Qt.AlignBottom, QtCore.Qt.black)
terminal.init()
controller = control.Controller(root, self)
engine.rootContext().setContextProperty("controller", controller)
engine.rootContext().setContextProperty("terminal", terminal.model)
self._tray = None
self.window = None
self.engine = engine
self.controller = controller
engine.load(QtCore.QUrl.fromLocalFile(source))
self.setQuitOnLastWindowClosed(False)
示例6: __init__
# 需要导入模块: from PyQt5 import QtQml [as 别名]
# 或者: from PyQt5.QtQml import QQmlApplicationEngine [as 别名]
def __init__(self, tray_icon_name: str = None, **kwargs) -> None:
plugin_path = ""
if sys.platform == "win32":
if hasattr(sys, "frozen"):
plugin_path = os.path.join(os.path.dirname(os.path.abspath(sys.executable)), "PyQt5", "plugins")
Logger.log("i", "Adding QT5 plugin path: %s", plugin_path)
QCoreApplication.addLibraryPath(plugin_path)
else:
import site
for sitepackage_dir in site.getsitepackages():
QCoreApplication.addLibraryPath(os.path.join(sitepackage_dir, "PyQt5", "plugins"))
elif sys.platform == "darwin":
plugin_path = os.path.join(self.getInstallPrefix(), "Resources", "plugins")
if plugin_path:
Logger.log("i", "Adding QT5 plugin path: %s", plugin_path)
QCoreApplication.addLibraryPath(plugin_path)
# use Qt Quick Scene Graph "basic" render loop
os.environ["QSG_RENDER_LOOP"] = "basic"
super().__init__(sys.argv, **kwargs) # type: ignore
self._qml_import_paths = [] #type: List[str]
self._main_qml = "main.qml" #type: str
self._qml_engine = None #type: Optional[QQmlApplicationEngine]
self._main_window = None #type: Optional[MainWindow]
self._tray_icon_name = tray_icon_name #type: Optional[str]
self._tray_icon = None #type: Optional[str]
self._tray_icon_widget = None #type: Optional[QSystemTrayIcon]
self._theme = None #type: Optional[Theme]
self._renderer = None #type: Optional[QtRenderer]
self._job_queue = None #type: Optional[JobQueue]
self._version_upgrade_manager = None #type: Optional[VersionUpgradeManager]
self._is_shutting_down = False #type: bool
self._recent_files = [] #type: List[QUrl]
self._configuration_error_message = None #type: Optional[ConfigurationErrorMessage]
self._http_network_request_manager = HttpRequestManager(parent = self)
#Metadata required for the file dialogues.
self.setOrganizationDomain("https://ultimaker.com/")
self.setOrganizationName("Ultimaker B.V.")