[Interest] Role of `qmlscene` and `qml` command line tools
Elvis Stansvik
elvstone at gmail.com
Fri May 6 15:24:31 CEST 2016
2016-05-06 11:36 GMT+02:00 Elvis Stansvik <elvstone at gmail.com>:
> Hi all,
>
> Since some time, the `qmlscene` command has been available for
> debugging QML applications:
>
>
> [estan at pyret ~]$ qmlscene --help
> Usage: qmlscene [options] <filename>
>
> Options:
> --maximized ...................... Run maximized
> --fullscreen ..................... Run fullscreen
> --transparent .................... Make the window transparent
> --multisample .................... Enable multisampling (OpenGL anti-aliasing)
> --no-version-detection ........... Do not try to detect the version
> of the .qml file
> --slow-animations ................ Run all animations in slow motion
> --resize-to-root ................. Resize the window to the size of
> the root item
> --quit ........................... Quit immediately after starting
> --disable-context-sharing ........ Disable the use of a shared GL
> context for QtQuick Windows
> .........(remove AA_ShareOpenGLContexts)
> --desktop..........................Force use of desktop GL
> (AA_UseDesktopOpenGL)
> --gles.............................Force use of GLES (AA_UseOpenGLES)
> --software.........................Force use of software rendering
> (AA_UseOpenGLES)
BTW this is a copy/paste error in the help output:
https://github.com/qtproject/qtdeclarative/blob/dev/tools/qml/main.cpp#L329
Should be "Qt::AA_UseSoftwareOpenGL."
Unfortunately I don't have a Qt dev env set up to provide a fix.
Elvis
> --scaling..........................Enable High DPI scaling
> (AA_EnableHighDpiScaling)
> --no-scaling.......................Disable High DPI scaling
> (AA_DisableHighDpiScaling)
> --verbose..........................Print version and graphical
> diagnostics for the run-time
> -I <path> ........................ Add <path> to the list of import paths
> -P <path> ........................ Add <path> to the list of plugin paths
> -translation <translationfile> ... Set the language to run in
>
> [estan at pyret ~]$
>
>
> Recently, the `qml` command is also available:
>
>
> [estan at pyret ~]$ qml -h
> Usage: qml [options] [files] [-- args]
>
> Any unknown argument before '--' will be treated as a QML file to be loaded.
> Any number of QML files can be loaded. They will share the same engine.
> 'gui' application type is only available if the QtGui module is available.
> 'widget' application type is only available if the QtWidgets module is
> available.
>
> General Options:
> -h, -help..................... Print this usage information and exit.
> -v, -version.................. Print the version information and exit.
> -apptype [core|gui|widget] ... Select which application class
> to use. Default is gui.
> -quiet ....................... Suppress all output.
> -I [path] .................... Prepend the given path to the
> import paths.
> -f [file] .................... Load the given file as a QML file.
> -config [file] ............... Load the given file as the
> configuration file.
> -- ........................... Arguments after this one are
> ignored by the launcher, but may be used within the QML application.
> GL options:
> -desktop.......................Force use of desktop GL
> (AA_UseDesktopOpenGL)
> -gles..........................Force use of GLES (AA_UseOpenGLES)
> -software......................Force use of software rendering
> (AA_UseOpenGLES)
> -scaling.......................Enable High DPI scaling
> (AA_EnableHighDpiScaling)
> -no-scaling....................Disable High DPI scaling
> (AA_DisableHighDpiScaling)
> Debugging options:
> -verbose ..................... Print information about what
> qml is doing, like specific file urls being loaded.
> -translation [file] .......... Load the given file as the
> translations file.
> -dummy-data [directory] ...... Load QML files from the given
> directory as context properties.
> -slow-animations ............. Run all animations in slow motion.
> -fixed-animations ............ Run animations off animation
> tick rather than wall time.
> [estan at pyret ~]$
>
>
> The tools seem quite similar. What was the rationale for introducing
> `qml`? The old `qmlscene` is described in the docs [1] as:
>
> "The qmlscene utility is meant to be used for testing your QML
> applications, and not as a launcher in a production environment. To
> launch a QML application in a production environment, develop a custom
> C++ application or bundle the QML file in a module. See Deploying QML
> applications for more information."
>
> Is there a similar page describing the `qml` tool somewhere (I can't
> see it mentioned anywhere)? Is the `qml` tool also meant only for
> testing/debugging, and not for production use?
>
> The reason I'm asking is I'm building a QML application for embedded
> use. The app is QML only, apart from some calls from QML into Python
> using pyotherside [2] when interfacing with the hardware. So in theory
> I could launch my app using `qmlscene` or `qml`, which would free me
> from having to build and distribute a little C++ launcher application
> to launch the app.
>
> Thanks in advance for any clarifications.
>
> Elvis
>
> [1] http://doc.qt.io/qt-5/qtquick-qmlscene.html
> [2] https://github.com/thp/pyotherside
More information about the Interest
mailing list