QML
From Lost In Wonderlands
Contents
- 1 QML
- 1.1 See also
- 1.2 QML / Qt Quick
- 1.3 QML Topics
- 1.4 A
- 1.5 B
- 1.6 C
- 1.7 D
- 1.8 E
- 1.9 F
- 1.10 G
- 1.11 H
- 1.12 I
- 1.13 J
- 1.14 K
- 1.15 L
- 1.16 M
- 1.17 N
- 1.18 O
- 1.19 P
- 1.20 Q
- 1.21 R
- 1.22 S
- 1.23 T
- 1.24 U
- 1.25 V
- 1.26 W
- 1.27 X
- 1.28 Y
- 1.29 Z
- 1.30 QML on iOS
- 1.31 QML on Android
- 1.32 QML on WebOS
- 1.33 QML on sailfish OS
- 1.34 tutorials
- 1.35 samples
- 1.36 open source code
- 1.37 Articles
- 1.38 Trainings
- 1.39 Blogs
- 1.40 Tools link
- 1.41 Books
QML
See also
QML / Qt Quick
- QtCreator
- https://doc.qt.io/qtcreator/quick-projects.html
- https://blog.qt.io/blog/tag/qml/
- https://blog.qt.io/blog/tag/qml-compiler-pipeline/
QML
- Qt QML
- https://doc.qt.io/qtcreator/creator-visual-editor.html
- https://doc.qt.io/qt-5/qmltypes.html
- https://doc.qt.io/qt-5/modules-qml.html
- https://doc.qt.io/qt-5/obsoleteqmltypes.html
QtQuick
- QtQuick
- http://doc.qt.io/qt-5/qtquickcontrols-overview.html
- https://doc.qt.io/qt-5/qtquick-module.html
- https://doc.qt.io/qt-5/qtquickextras-index.html
- https://d33sqmjvzgs8hq.cloudfront.net/wp-content/uploads/2015/10/7-qml-presenting-data.pdf
- http://tvaira.free.fr/dev/qt/cours-qml.pdf
QML and C++ interractions
- https://doc.qt.io/qt-5/qtqml-typesystem-basictypes.html
- https://doc.qt.io/qt-5/qtqml-typesystem-topic.html
- https://doc.qt.io/qt-5/qtqml-typesystem-objecttypes.html
- https://doc.qt.io/qt-5/qtqml-cppintegration-topic.html
- https://doc.qt.io/qt-5/qtqml-cppintegration-definetypes.html
- https://doc.qt.io/qt-5/qtqml-cppintegration-data.html
- https://doc.qt.io/qt-5/qtqml-cppintegration-interactqmlfromcpp.html
- https://doc.qt.io/qt-5/qtqml-cppintegration-exposecppattributes.html
- https://doc.qt.io/qt-5/qtqml-cppintegration-overview.html
- https://doc.qt.io/qt-5/why-moc.html
- https://doc.qt.io/qt-5/qtqml-syntax-objectattributes.html
- https://doc.qt.io/qt-5/qtqml-referenceexamples-extended-example.html
- https://doc.qt.io/qt-5/qtqml-modules-cppplugins.html
- https://doc.qt.io/qt-5/plugins-howto.html
- https://doc.qt.io/qt-5/deployment-plugins.html
- https://doc.qt.io/qt-5/designer-creating-custom-widgets.html
- https://doc.qt.io/qt-5/qtwidgets-tools-echoplugin-example.html
- https://doc.qt.io/qt-5/qtqml-tutorials-extending-qml-example.html
- https://doc.qt.io/qt-5/metaobjects.html
- https://doc.qt.io/qt-5/properties.html
- https://doc.qt.io/qt-5/moc.html
- https://doc.qt.io/qt-5/why-moc.html
- https://doc.qt.io/qt-5/qtqml-documents-definetypes.html
- https://doc.qt.io/qt-5/qtqml-referenceexamples-adding-example.html
other
QML Topics
A
antialiasing in QML
B
C
Changing QML view clicking a button
Coding Styles
Controls
- https://doc.qt.io/qt-5/qtquick-controls2-qmlmodule.html
- https://doc.qt.io/qt-5/qml-qtquick-controls2-control.html
- https://doc.qt.io/qt-6/qtquickcontrols-index.html
D
E
F
G
Gradients
H
I
Imports
- until QT6 imports are versioned
import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12
in Qt6 versioning will disappear
J
K
L
M
N
O
P
Properties
setting
Binding
Q
R
S
scalability/ screen size and orientation
- https://doc.qt.io/qt-5/scalability.html
- https://stackoverflow.com/questions/34027727/how-can-i-create-a-qml-gridlayout-with-items-of-proportionate-sizes
import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12
ApplicationWindow {
width: 480
height: 640
visible: true
title: qsTr("@hello, Trilda")
GridLayout {
anchors.fill: parent
flow: width > height ? GridLayout.LeftToRight : GridLayout.TopToBottom
ColumnLayout {
Layout.fillWidth: true
Layout.fillHeight: true
spacing: 20
Image {
id: trildaLogo
fillMode: Image.PreserveAspectFit
source: "Images/trida-gray-flower+trilda-comics-sans-ms.png"
Layout.alignment: Qt.AlignCenter
Layout.fillWidth: true
Layout.preferredWidth: 150
Layout.preferredHeight: 250
Rectangle {
id: trildaLogoHighlight
anchors.fill: parent
opacity: 0.3
visible: false
radius: height
gradient: Gradient {
GradientStop {
position: 0.000
color: Qt.rgba(1, 0, 0, 1)
}
GradientStop {
position: 0.167
color: Qt.rgba(1, 1, 0, 1)
}
GradientStop {
position: 0.333
color: Qt.rgba(0, 1, 0, 1)
}
GradientStop {
position: 0.500
color: Qt.rgba(0, 1, 1, 1)
}
GradientStop {
position: 0.667
color: Qt.rgba(0, 0, 1, 1)
}
GradientStop {
position: 0.833
color: Qt.rgba(1, 0, 1, 1)
}
GradientStop {
position: 1.000
color: Qt.rgba(1, 0, 0, 1)
}
}
}
MouseArea {
id: trildaLogoMouseArea
anchors.fill: parent
enabled: true
hoverEnabled: true
preventStealing: true
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked: {
console.log("trilda logo was clicked")
console.log("technoverse.free.fr")
Qt.openUrlExternally("http://technoverse.free.fr/index.php?title=Trilda")
}
onDoubleClicked: {
console.log("trilda logo was double clicked")
}
onEntered:{
console.log("mouse entered trilda logo ")
trildaLogoHighlight.visible = true
}
onExited:{
console.log("mouse exited trilda logo")
trildaLogoHighlight.visible = false
}
onPositionChanged: {
console.log("mouse (x: " +mouseX + " y: " +mouseX + ")")
}
}
}
Text {
id: trildaDescription
text: qsTr("a multipurpose<br>software development<br>company")
font.italic: true
horizontalAlignment: Text.AlignHCenter
Layout.fillWidth: true
Layout.alignment: Qt.AlignCenter
}
}
ColumnLayout {
Layout.fillWidth: true
Layout.fillHeight: true
Text {
id: trildaDescriptionQt
text: qsTr("<b>Qt</b>,<br>QML, C++11/14/17/20/21...")
font.italic: true
horizontalAlignment: Text.AlignHCenter
Layout.fillWidth: true
Layout.alignment: Qt.AlignCenter
}
Text {
id: trildaDescriptionGoogleDroid
text: qsTr("<b>Android</b>,<br>Android Studio, Java, Kotlin,<br>JetPack, Architecture Component")
font.italic: true
horizontalAlignment: Text.AlignHCenter
Layout.fillWidth: true
Layout.alignment: Qt.AlignCenter
}
Text {
id: trildaDescriptionApple
text: qsTr("<b>Apple Platforms</b><br>macOS, iPadOS, iOS, tvOS, WatchOS,<br>xCode, obj-C/C++, Swift, SwiftUI<br>Cocoa, AppKit, UIKit")
font.italic: true
horizontalAlignment: Text.AlignHCenter
Layout.fillWidth: true
Layout.alignment: Qt.AlignCenter
}
Text {
id: trildaCopyrightDates
text: qsTr("© 2009-2021")
font.italic: true
horizontalAlignment: Text.AlignHCenter
Layout.fillWidth: true
Layout.alignment: Qt.AlignCenter
}
}
}
}
Signals and Slots
T
Testing
U
V
W
X
Y
Z
QML on iOS
- require Xcode
- better to use Qt 5.15.x
- it generates an Xcode Project
- in the Xcode project you can find the launchScreen.storyboard that is shown when application starts
- by default it shows the Qt Application name ( the project file indeed)
- , this is of course not the usage for Apple of that lauchscreen a
- you need to change it
- in the Xcode Project you will find the icons required by Apple to support many devices
- you will need to add them particularly the 1024 pixels wide icon for the App Store
- in xCode Project you will also find the info.plist for the generated App
- in this info .plist file you need to add many stuff , user authorization grants, many settings
- in the Xcode file you might find localization for the lauchnscreen if it is required
- ( this is not recommended by Apple and could lead to a reject form the App Store, at least a request for required change)
- with Qt6.x.x I have an issue :
- on installing it on a Mac mini M1,
- the maintenance tool seems to not be able to install every packages required
- it does not even propose them in the install list of modules
QML on Android
- on a Mac mini M1 I did not yet succeed to lauch it either on a simulator or a connected device
- but this is not an ended story
- the issue is that the simulator ran in troubles about the M1 mini , should it an as an HAXM x86 simulator with an x86 rom or as another configuration ???
- I Guess it fails to run it because of this
- note it succeed from android studio...
- so the solution may be is in an option in the command line use to start it from Qt Creator
QML on WebOS
- this is for LG TV
- https://www.webosose.org/
- https://www.webosose.org/docs/guides/development/qml-apps/qml-app-overview/
QML on sailfish OS
- this is QML for SailFish OS , a Phone OS based on teh Mer Project derived from Meego of Intel OTC (moblin) and Nokia (Maemo)
- https://sailfishos.org/wiki/Tutorial_-_QML_Live_Coding_With_Qt_QmlLive
tutorials
- https://doc.qt.io/qtcreator/creator-visual-editor.html
- https://doc.qt.io/qt-5/qml-tutorial.html
- https://qt.developpez.com/doc/4.7/qdeclarativeintroduction/
samples
- https://doc.qt.io/qt-5/qtquickextras-examples.html
- https://code.qt.io/cgit/qt/qtquickcontrols.git/tree/examples/quickcontrols/extras/dashboard?h=5.15
open source code
- https://github.com/lirios/fluid
- https://github.com/papyros/qml-material
- https://github.com/Ableton/aqt-stylesheets
- https://github.com/StratifyLabs/StratifyQML
- https://github.com/Druage/FlatUI-Controls-QML
- https://github.com/qml-box2d/qml-box2d
- https://github.com/advancingu/QmlOgre
- https://github.com/Bacon2D/Bacon2D
- https://github.com/qCring/QuickVtk
- https://github.com/jemc/qml-sockets
- https://github.com/nsuke/protobuf-qml
- http://communi.github.io/
- https://github.com/qtrest/qtrest]
- https://github.com/benlau/quickcross
- https://github.com/Furkanzmc/QML-UI-Animations
- https://github.com/spuschhof/QMLTable
- https://github.com/rshest/qml-colorpicker
- https://github.com/qyvlik/DateSelector
- https://github.com/hahn-kev/QmlGrid
- https://github.com/anatolyk82/SlideMenu
- https://github.com/MrEricSir/QMLRearrangeableTreeView
- https://github.com/alamminsalo/qmlnotify
- https://github.com/pureqml/qmlcore
- https://github.com/schulzch/qml-ogdf
- https://github.com/vannell/qml_framerate
- https://github.com/qyvlik/Chart.qml
- https://github.com/evonove/qnite
- https://github.com/dinusv/qml-gantt
- https://github.com/jcelerier/qml-creative-controls
- https://github.com/benlau/sparkqml
- https://github.com/vmatikainen/spine-qml-converter
- https://github.com/grassator/react-qml
- https://github.com/andeplane/qt-touchbar/
- https://github.com/chili-epfl/qml-cvcamera
- https://github.com/jarnoh/qmlmidi
- https://github.com/pkobrien/qml-slideshow
- https://github.com/qt-labs/qml-presentation-system
- https://github.com/penk/qml-handwriting
- https://github.com/qmlweb/qmlweb
- https://github.com/cisco-open-source/qtwebdriver
- https://github.com/penk/terrarium-app
- https://qbeon.github.io/QuickStreams/
- https://github.com/benlau/quickfuture
- https://github.com/benlau/quickpromise
- https://github.com/benlau/asyncfuture
- http://surfsky.github.io/QmlExplorer/
- https://patrickelectric.work/qmlonline/
- https://github.com/patrickelectric/qhot
- https://github.com/penk/qml-livereload
- https://github.com/benlau/quickios
- https://github.com/amarchen/CuteContacts-iOS
- https://github.com/benlau/quickflux
- https://github.com/colede/qt-app-delegate
- https://github.com/qCring/QMLFontAwesome
- https://github.com/benlau/fontawesome.pri
- https://github.com/QMLCommunity/font-awesome-qml
test
- https://github.com/jemc/QmlSpec
- https://github.com/benlau/testrunner
- https://github.com/benlau/testable
- https://github.com/fgrehm/qmlunit
extentions for IDE
- https://github.com/kropp/intellij-qml
- https://github.com/rschiang/atom-language-qml
- https://github.com/skozlovf/Sublime-QML
Articles
Trainings
Blogs
- http://quitcoding.com
- https://github.com/mikalv/awesome-qt-qml#cryptography
- https://www.opensourceforu.com/category/type-of-audiences/developers/page/2/
Tools link
- https://doc.qt.io/qtcreator/creator-using-qt-quick-designer.html
- https://forum.kde.org/viewtopic.php?f=305&t=162495
Books
- PacktPublishing Qt related books source code on GitHub
https://github.com/search?q=org%3APacktPublishing+Qt