├── .github
└── workflows
│ └── release.yaml
├── .gitignore
├── CMakeLists.txt
├── LICENSE.code
├── LICENSE.md
├── LICENSE.text
├── README.md
├── assets
├── frontpage.jpg
└── frontpage.pdf
├── docs
├── .vuepress
│ ├── config.js
│ └── styles
│ │ └── index.styl
├── CMakeLists.txt
├── ch01-meetqt
│ ├── assets
│ │ ├── background.png
│ │ ├── ch01_diragrams.graffle
│ │ ├── ch01_overview.png
│ │ ├── essential_modules.png
│ │ ├── pinwheel.png
│ │ ├── pole.png
│ │ ├── qt-modules.png
│ │ ├── qt6_overview.png
│ │ ├── scene.png
│ │ ├── scene2.png
│ │ ├── showcase.png
│ │ ├── showcase2.png
│ │ ├── showcase3.png
│ │ └── showcase4.png
│ ├── blocks.md
│ ├── intro.md
│ ├── meet-qt.md
│ └── src
│ │ └── Showcase
│ │ ├── Showcase.qml
│ │ ├── Step01Root.qml
│ │ ├── Step02Background.qml
│ │ ├── Step03Pinwheel.qml
│ │ ├── Step04Animate.qml
│ │ ├── images
│ │ ├── background.png
│ │ ├── blur.png
│ │ ├── pinwheel.png
│ │ └── pole.png
│ │ ├── pinwheel.qml
│ │ ├── showcase.qmlproject
│ │ ├── showcase.qmlproject.qtds
│ │ ├── something.png
│ │ └── tst_showcase.qml
├── ch02-start
│ ├── app-types.md
│ ├── assets
│ │ ├── example.png
│ │ └── qtcreator-run.png
│ ├── hello-world.md
│ ├── install.md
│ ├── quick-start.md
│ └── summary.md
├── ch03-qtcreator
│ ├── assets
│ │ ├── creator-edit-shortcuts.png
│ │ ├── creator-editor.png
│ │ ├── creator-locator.png
│ │ ├── creator-welcome.png
│ │ ├── locator.png
│ │ └── qtcreator-screenshots.png
│ ├── debugging.md
│ ├── editor.md
│ ├── kit-registry.md
│ ├── locator.md
│ ├── projects.md
│ ├── qt-creator.md
│ ├── shortcuts.md
│ └── user-interface.md
├── ch04-qmlstart
│ ├── advanced.md
│ ├── assets
│ │ ├── anchorgrid.png
│ │ ├── anchors.png
│ │ ├── button_clicked.png
│ │ ├── button_waiting.png
│ │ ├── chapter04.graffle
│ │ ├── column.png
│ │ ├── flow.png
│ │ ├── grid.png
│ │ ├── image.png
│ │ ├── keys.png
│ │ ├── mousearea1.png
│ │ ├── mousearea2.png
│ │ ├── objects.png
│ │ ├── objects_overlap.png
│ │ ├── objects_transformed.png
│ │ ├── qmltree.png
│ │ ├── rectangle2.png
│ │ ├── rectangle3.png
│ │ ├── repeater.png
│ │ ├── row.png
│ │ ├── scene.pdf
│ │ ├── scene.png
│ │ ├── text.png
│ │ ├── textedit.png
│ │ ├── textinput.png
│ │ └── textinput3.png
│ ├── components.md
│ ├── core-elements.md
│ ├── input.md
│ ├── layout.md
│ ├── positioning.md
│ ├── qml-syntax.md
│ ├── quick-start.md
│ ├── src
│ │ ├── components
│ │ │ ├── Button.qml
│ │ │ ├── ButtonMinimalApiExample.qml
│ │ │ ├── InlinedComponentExample.qml
│ │ │ ├── ReusableComponentExample.qml
│ │ │ └── components.qmlproject
│ │ ├── concepts
│ │ │ ├── ImageExample.qml
│ │ │ ├── MouseAreaExample.qml
│ │ │ ├── PropertiesExample.qml
│ │ │ ├── RectangleExample.qml
│ │ │ ├── RectangleExample2.qml
│ │ │ ├── RectangleExample3.qml
│ │ │ ├── ScriptingExample.qml
│ │ │ ├── TextExample.qml
│ │ │ ├── assets
│ │ │ │ ├── background.png
│ │ │ │ ├── triangle_blue.png
│ │ │ │ ├── triangle_blue@2x.png
│ │ │ │ ├── triangle_green.png
│ │ │ │ ├── triangle_green@2x.png
│ │ │ │ ├── triangle_red.png
│ │ │ │ └── triangle_red@2x.png
│ │ │ ├── concepts.qmlproject
│ │ │ ├── tst_concepts.qml
│ │ │ ├── tst_imageexample.qml
│ │ │ └── tst_rectangleexample.qml
│ │ ├── input
│ │ │ ├── DarkSquare.qml
│ │ │ ├── GreenSquare.qml
│ │ │ ├── KeysExample.qml
│ │ │ ├── TLineEdit.qml
│ │ │ ├── TLineEditV1.qml
│ │ │ ├── TLineEditV2.qml
│ │ │ ├── TTextEdit.qml
│ │ │ ├── TextEditExample.qml
│ │ │ ├── TextInputExample.qml
│ │ │ ├── TextInputExample2.qml
│ │ │ ├── TextInputExample3.qml
│ │ │ ├── TextInputExample4.qml
│ │ │ └── input.qmlproject
│ │ ├── layout
│ │ │ ├── AnchorsExample.qml
│ │ │ ├── AnchorsExample2.qml
│ │ │ ├── BlueSquare.qml
│ │ │ ├── BrightSquare.qml
│ │ │ ├── DarkSquare.qml
│ │ │ ├── EmptySquare.qml
│ │ │ ├── GreenSquare.qml
│ │ │ ├── RedSquare.qml
│ │ │ ├── Square.qml
│ │ │ ├── anchors.qmlproject
│ │ │ └── tst_anchors.qml
│ │ ├── positioners
│ │ │ ├── BlueSquare.qml
│ │ │ ├── BrightSquare.qml
│ │ │ ├── ColumnExample.qml
│ │ │ ├── DarkSquare.qml
│ │ │ ├── FlowExample.qml
│ │ │ ├── GreenSquare.qml
│ │ │ ├── GridExample.qml
│ │ │ ├── GridsystemExample.qml
│ │ │ ├── MixedExample.qml
│ │ │ ├── PositionersExample.qml
│ │ │ ├── RawRowExample.qml
│ │ │ ├── RedSquare.qml
│ │ │ ├── RepeaterExample.qml
│ │ │ ├── RowExample.qml
│ │ │ ├── RowExample2.qml
│ │ │ ├── assets
│ │ │ │ ├── beach_s01.jpg
│ │ │ │ ├── beach_s02.jpg
│ │ │ │ ├── beach_s03.jpg
│ │ │ │ └── beach_s04.jpg
│ │ │ └── positioners.qmlproject
│ │ └── transformation
│ │ │ ├── ClickableImage.qml
│ │ │ ├── TransformationExample.qml
│ │ │ ├── assets
│ │ │ ├── background.png
│ │ │ ├── background@2x.png
│ │ │ ├── box_green.png
│ │ │ ├── box_green@2x.png
│ │ │ ├── box_green@3x.png
│ │ │ ├── circle_blue.png
│ │ │ ├── circle_blue@2x.png
│ │ │ ├── triangle_red.png
│ │ │ └── triangle_red@2x.png
│ │ │ ├── transformation.qmlproject
│ │ │ └── tst_transformation.qml
│ └── transformations.md
├── ch05-fluid
│ ├── advanced.md
│ ├── animations.md
│ ├── assets
│ │ ├── animation.png
│ │ ├── animation_loop.gif
│ │ ├── animation_sequence.png
│ │ ├── animationtypes.png
│ │ ├── animationtypes_start.png
│ │ ├── automatic
│ │ │ └── easingcurves.png
│ │ ├── chapter05.graffle
│ │ ├── easingtypes.png
│ │ ├── groupedanimation.png
│ │ ├── parallelanimation_sequence.png
│ │ ├── sequentialanimation_sequence.png
│ │ ├── soccer_init.png
│ │ ├── soccer_plan.png
│ │ ├── soccer_stage1.png
│ │ ├── soccer_stage2.png
│ │ ├── soccer_stage3.png
│ │ ├── soccer_stage4.png
│ │ ├── trafficlight_sketch.png
│ │ ├── trafficlight_states.png
│ │ ├── trafficlight_transition.png
│ │ └── trafficlight_ui.png
│ ├── fluid-elements.md
│ ├── src
│ │ ├── animation
│ │ │ ├── AnimationExample.qml
│ │ │ ├── AnimationTypesExample.qml
│ │ │ ├── BouncingBallExample.qml
│ │ │ ├── BrightSquare.qml
│ │ │ ├── ClickableImageV2.qml
│ │ │ ├── ClickableImageV3.qml
│ │ │ ├── DarkSquare.qml
│ │ │ ├── GreenSquare.qml
│ │ │ ├── ParallelAnimationExample.qml
│ │ │ ├── RedSquare.qml
│ │ │ ├── SequentialAnimationExample.qml
│ │ │ ├── StatesExample.qml
│ │ │ ├── animation.qmlproject
│ │ │ ├── assets
│ │ │ │ ├── background.png
│ │ │ │ ├── background@2x.png
│ │ │ │ ├── background_medium.png
│ │ │ │ ├── background_medium@2x.png
│ │ │ │ ├── box_blue.png
│ │ │ │ ├── box_blue@2x.png
│ │ │ │ ├── box_green.png
│ │ │ │ ├── box_green@2x.png
│ │ │ │ ├── box_red.png
│ │ │ │ ├── box_red@2x.png
│ │ │ │ ├── planet.png
│ │ │ │ ├── rocket.png
│ │ │ │ ├── rocket2.png
│ │ │ │ ├── soccer_ball.png
│ │ │ │ ├── soccer_shadow.png
│ │ │ │ ├── ufo.png
│ │ │ │ └── ufo_background.png
│ │ │ └── tst_animationtypes.qml
│ │ ├── easing
│ │ │ ├── Box.qml
│ │ │ ├── EasingCurves.qml
│ │ │ ├── EasingCurves.qmlproject
│ │ │ ├── EasingType.qml
│ │ │ ├── Tracer.qml
│ │ │ └── blueprint.jpg
│ │ └── screenshots.qml
│ └── states-transitions.md
├── ch06-controls
│ ├── assets
│ │ ├── android-selector.png
│ │ ├── applicationwindow-areas.png
│ │ ├── button-background-checked-enlarged.9.png
│ │ ├── button-background-enlarged.9.png
│ │ ├── dialog-state-machine.png
│ │ ├── interface-document-window.png
│ │ ├── interface-side-by-side-community.png
│ │ ├── interface-side-by-side-current.png
│ │ ├── interface-side-by-side-user.png
│ │ ├── interface-stack-about.png
│ │ ├── interface-stack-edit-profile.png
│ │ ├── interface-stack-home.png
│ │ ├── interface-stack-profile.png
│ │ ├── nested-screens.png
│ │ ├── side-by-side-screen.png
│ │ ├── style-basic.png
│ │ ├── style-fusion.png
│ │ ├── style-imagine-example.png
│ │ ├── style-imagine.png
│ │ ├── style-material.png
│ │ ├── style-universal.png
│ │ ├── viewer-about.png
│ │ ├── viewer-mobile-drawer.png
│ │ ├── viewer-mobile.png
│ │ └── viewer-window.png
│ ├── common-patterns.md
│ ├── controls2.md
│ ├── image-viewer.md
│ ├── imagine-style.md
│ ├── introduction.md
│ ├── src
│ │ ├── imageviewer-all
│ │ │ ├── +android
│ │ │ │ ├── main.qml
│ │ │ │ └── qtquickcontrols2.conf
│ │ │ ├── ImageViewerWindow.qml
│ │ │ ├── images
│ │ │ │ └── baseline-menu-24px.svg
│ │ │ ├── imageviewer-all.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── qml.qrc
│ │ │ └── qtquickcontrols2.conf
│ │ ├── imageviewer-desktop
│ │ │ ├── imageviewer-desktop.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── imageviewer-mobile
│ │ │ ├── images
│ │ │ │ └── baseline-menu-24px.svg
│ │ │ ├── imageviewer-mobile.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── imageviewer-native
│ │ │ ├── imageviewer-native.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── imagine-style
│ │ │ ├── buttons.svg
│ │ │ ├── images
│ │ │ │ └── imagine
│ │ │ │ │ ├── applicationwindow-background.png
│ │ │ │ │ ├── button-background-checked.9.png
│ │ │ │ │ ├── button-background-pressed.9.png
│ │ │ │ │ └── button-background.9.png
│ │ │ ├── imagine-style.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── qml.qrc
│ │ │ └── qtquickcontrols2.conf
│ │ ├── interface-document-window
│ │ │ ├── DocumentWindow.qml
│ │ │ ├── interface-document-window.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── interface-side-by-side
│ │ │ ├── Current.qml
│ │ │ ├── TotalStats.qml
│ │ │ ├── UserStats.qml
│ │ │ ├── interface-side-by-side.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── qml.qrc
│ │ │ └── qtquickcontrols2.conf
│ │ └── interface-stack
│ │ │ ├── About.qml
│ │ │ ├── EditProfile.qml
│ │ │ ├── Home.qml
│ │ │ ├── Profile.qml
│ │ │ ├── interface-stack.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── qml.qrc
│ │ │ └── qtquickcontrols2.conf
│ └── summary.md
├── ch07-modelview
│ ├── advanced.md
│ ├── assets
│ │ ├── automatic
│ │ │ ├── delegates-basic.png
│ │ │ ├── delegates-expanding-large.png
│ │ │ ├── delegates-expanding-small.png
│ │ │ ├── delegates-objectmodel.png
│ │ │ ├── empty.dir
│ │ │ ├── gridview-basic.png
│ │ │ ├── listview-basic.png
│ │ │ ├── listview-clip.png
│ │ │ ├── listview-header-footer.png
│ │ │ ├── listview-highlight.png
│ │ │ ├── listview-horizontal.png
│ │ │ ├── listview-sections.png
│ │ │ ├── pathview-coverview.png
│ │ │ ├── repeater-array.png
│ │ │ ├── repeater-delegate.png
│ │ │ ├── repeater-model.png
│ │ │ ├── repeater-number.png
│ │ │ └── xmllistmodel-images.png
│ │ ├── model-view-delegate.png
│ │ └── tableview.png
│ ├── basic-models.md
│ ├── concept.md
│ ├── delegate.md
│ ├── dynamic-views.md
│ ├── model-view.md
│ ├── src
│ │ ├── CMakeLists.txt
│ │ ├── ch06.qmlproject
│ │ ├── common
│ │ │ ├── Background.qml
│ │ │ ├── BlueBox.qml
│ │ │ ├── Box.qml
│ │ │ ├── GreenBox.qml
│ │ │ ├── RedBox.qml
│ │ │ ├── Tracer.qml
│ │ │ └── YellowBox.qml
│ │ ├── delegates
│ │ │ ├── add-remove-effects.qml
│ │ │ ├── basic.qml
│ │ │ ├── cache-buffer.qml
│ │ │ ├── expanding.qml
│ │ │ ├── images
│ │ │ │ ├── earth.jpeg
│ │ │ │ ├── jupiter.jpeg
│ │ │ │ ├── mars.jpeg
│ │ │ │ ├── mercury.jpeg
│ │ │ │ └── venus.jpeg
│ │ │ ├── model-action.qml
│ │ │ ├── objectmodel.qml
│ │ │ ├── ss-basic.qml
│ │ │ └── ss-expanding-large.qml
│ │ ├── gridview
│ │ │ └── basic.qml
│ │ ├── listview
│ │ │ ├── basic.qml
│ │ │ ├── clip.qml
│ │ │ ├── header-footer.qml
│ │ │ ├── highlight-custom.qml
│ │ │ ├── highlight.qml
│ │ │ ├── horizontal.qml
│ │ │ ├── sections.qml
│ │ │ └── ss-highlight.qml
│ │ ├── pathview
│ │ │ └── coverview.qml
│ │ ├── repeater
│ │ │ ├── array.qml
│ │ │ ├── delegate.qml
│ │ │ ├── model.qml
│ │ │ └── number.qml
│ │ ├── screenshots.qml
│ │ ├── tableview
│ │ │ ├── CMakeLists.txt
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── qml.qrc
│ │ │ ├── tablemodel.cpp
│ │ │ └── tablemodel.h
│ │ └── xmllistmodel
│ │ │ ├── images.qml
│ │ │ └── ss-images.qml
│ └── summary.md
├── ch08-canvas
│ ├── assets
│ │ ├── canvas_image.png
│ │ ├── canvaspaint.png
│ │ ├── composite-operations.png
│ │ ├── convenient.png
│ │ ├── glowlines.png
│ │ ├── gradient.png
│ │ ├── html_glowlines.png
│ │ ├── line.png
│ │ ├── rectangle.png
│ │ ├── shadow.png
│ │ ├── spirograph.png
│ │ └── transform.png
│ ├── canvas-element.md
│ ├── canvas-paint.md
│ ├── composition-modes.md
│ ├── convenience-api.md
│ ├── gradients.md
│ ├── images.md
│ ├── pixel-buffer.md
│ ├── port-from-html.md
│ ├── shadows.md
│ ├── src
│ │ └── canvas
│ │ │ ├── ColorSquare.qml
│ │ │ ├── assets
│ │ │ └── ball.png
│ │ │ ├── canvas.qmlproject
│ │ │ ├── compositeoperation.qml
│ │ │ ├── composition.qml
│ │ │ ├── convenient.qml
│ │ │ ├── glowlines.qml
│ │ │ ├── gradient.qml
│ │ │ ├── image.qml
│ │ │ ├── imagedata.qml
│ │ │ ├── line.qml
│ │ │ ├── paint.qml
│ │ │ ├── rectangle.qml
│ │ │ ├── shadow.qml
│ │ │ ├── spirograph.qml
│ │ │ └── transform.qml
│ └── transformation.md
├── ch09-shapes
│ ├── animations.md
│ ├── assets
│ │ └── automatic
│ │ │ ├── animation.png
│ │ │ ├── basic.png
│ │ │ ├── fillmode.png
│ │ │ ├── gradients.png
│ │ │ └── paths.png
│ ├── basics.md
│ ├── gradients.md
│ ├── paths.md
│ ├── shapes.md
│ ├── src
│ │ ├── screenshots.qml
│ │ └── shapes
│ │ │ ├── Marker.qml
│ │ │ ├── animation.qml
│ │ │ ├── basic.qml
│ │ │ ├── fillmode.qml
│ │ │ ├── gradients.qml
│ │ │ └── paths.qml
│ └── summary.md
├── ch10-effects
│ ├── affecting-particles.md
│ ├── assets
│ │ ├── age.png
│ │ ├── angledirection.png
│ │ ├── angledirection2.png
│ │ ├── attractor.png
│ │ ├── chapter07_diagram.graffle
│ │ ├── colorvariation.png
│ │ ├── curtain.png
│ │ ├── curtain_diagram.png
│ │ ├── curve.png
│ │ ├── defaultshader.png
│ │ ├── directionquest.png
│ │ ├── fastblur.png
│ │ ├── firework_final.png
│ │ ├── firework_rockets.png
│ │ ├── firework_teaser.png
│ │ ├── friction.png
│ │ ├── geniebending.png
│ │ ├── genieeffect.png
│ │ ├── geniehalfside.png
│ │ ├── genieminimize.png
│ │ ├── geniescene.png
│ │ ├── geniesimplebending.png
│ │ ├── geniesmoothbending.png
│ │ ├── graphicseffects.csv
│ │ ├── graphicseffectstestbed.png
│ │ ├── gravity.png
│ │ ├── itemparticle.png
│ │ ├── openglpipeline.png
│ │ ├── particle_directions.png
│ │ ├── particleparameters.png
│ │ ├── particlesystem.png
│ │ ├── pointdirection.png
│ │ ├── redlense1.png
│ │ ├── redlense2.png
│ │ ├── redlense3.png
│ │ ├── redlense4.png
│ │ ├── redlense5.png
│ │ ├── rotationvariation.png
│ │ ├── simpleparticles.png
│ │ ├── simpleparticles2.png
│ │ ├── targetdirection.png
│ │ ├── turbulence.png
│ │ ├── wander.png
│ │ └── wave.png
│ ├── curtain-effect.md
│ ├── directed-particles.md
│ ├── effects.md
│ ├── fragment-shaders.md
│ ├── opengl-shaders.md
│ ├── particle-groups.md
│ ├── particle-painters.md
│ ├── particle-parameters.md
│ ├── particles.md
│ ├── shader-elements.md
│ ├── simple-simulation.md
│ ├── src
│ │ ├── effects
│ │ │ ├── assets
│ │ │ │ ├── background.png
│ │ │ │ ├── background@2x.png
│ │ │ │ ├── bug.jpg
│ │ │ │ ├── butterfly.png
│ │ │ │ ├── coastline.jpg
│ │ │ │ ├── fabric.png
│ │ │ │ ├── fabric@2x.png
│ │ │ │ ├── lighthouse.jpg
│ │ │ │ ├── longroad.jpg
│ │ │ │ └── tulips.jpg
│ │ │ ├── curtain
│ │ │ │ ├── CurtainEffect.qml
│ │ │ │ ├── curtain.frag
│ │ │ │ ├── curtain.vert
│ │ │ │ └── curtaindemo.qml
│ │ │ ├── default
│ │ │ │ ├── default.frag
│ │ │ │ ├── default.vert
│ │ │ │ └── defaultshader.qml
│ │ │ ├── genie
│ │ │ │ ├── 0
│ │ │ │ │ └── genie0.qml
│ │ │ │ ├── 1
│ │ │ │ │ ├── genie1.qml
│ │ │ │ │ └── genie1.vert
│ │ │ │ ├── 2
│ │ │ │ │ ├── genie2.qml
│ │ │ │ │ └── genie2.vert
│ │ │ │ ├── 3
│ │ │ │ │ ├── genie3.qml
│ │ │ │ │ └── genie3.vert
│ │ │ │ ├── 4
│ │ │ │ │ ├── genie4.qml
│ │ │ │ │ └── genie4.vert
│ │ │ │ └── demo
│ │ │ │ │ ├── GenieEffect.qml
│ │ │ │ │ ├── geniedemo.qml
│ │ │ │ │ └── genieeffect.vert
│ │ │ ├── redlense
│ │ │ │ ├── 1
│ │ │ │ │ └── redlense1.qml
│ │ │ │ └── 2
│ │ │ │ │ ├── red1.frag
│ │ │ │ │ ├── red2.frag
│ │ │ │ │ ├── red3.frag
│ │ │ │ │ └── redlense2.qml
│ │ │ └── wave
│ │ │ │ ├── wave.frag
│ │ │ │ └── wave.qml
│ │ └── particles
│ │ │ ├── Tracer.qml
│ │ │ ├── age.qml
│ │ │ ├── angledirection.qml
│ │ │ ├── angledirection2.qml
│ │ │ ├── assets
│ │ │ ├── background medium.png
│ │ │ ├── background medium@2x.png
│ │ │ ├── background.png
│ │ │ ├── background@2x.png
│ │ │ ├── box_blue.png
│ │ │ ├── box_blue@2x.png
│ │ │ ├── box_green.png
│ │ │ ├── box_green@2x.png
│ │ │ ├── box_red.png
│ │ │ ├── box_red@2x.png
│ │ │ ├── circle_blue.png
│ │ │ ├── circle_blue@2x.png
│ │ │ ├── circle_green.png
│ │ │ ├── circle_green@2x.png
│ │ │ ├── circle_red.png
│ │ │ ├── circle_red@2x.png
│ │ │ ├── particle.png
│ │ │ ├── rect.png
│ │ │ ├── rocket.png
│ │ │ ├── rocket@2x.png
│ │ │ ├── star.png
│ │ │ ├── triangle_blue.png
│ │ │ ├── triangle_blue@2x.png
│ │ │ ├── triangle_green.png
│ │ │ ├── triangle_green@2x.png
│ │ │ ├── triangle_red.png
│ │ │ ├── triangle_red@2x.png
│ │ │ └── ufo.png
│ │ │ ├── attractor.qml
│ │ │ ├── directionexample.qml
│ │ │ ├── firework.qml
│ │ │ ├── firework1.qml
│ │ │ ├── friction.qml
│ │ │ ├── gravity.qml
│ │ │ ├── itemparticle.qml
│ │ │ ├── particlevariation.qml
│ │ │ ├── pointdirection.qml
│ │ │ ├── rotationvariation.qml
│ │ │ ├── simple.qml
│ │ │ ├── simple2.qml
│ │ │ ├── targetdirection.qml
│ │ │ ├── turbulence.qml
│ │ │ └── wander.qml
│ ├── summary.md
│ ├── vertex-shader.md
│ └── wave-effect.md
├── ch11-multimedia
│ ├── assets
│ │ └── camera-ui.png
│ ├── capturing-images.md
│ ├── multimedia.md
│ ├── playing-media.md
│ ├── sound-effects.md
│ ├── src
│ │ ├── camera-capture
│ │ │ ├── basic.qml
│ │ │ └── complete.qml
│ │ ├── playback-audio
│ │ │ └── main.qml
│ │ ├── playback-controls
│ │ │ ├── main.qml
│ │ │ └── sample-5s.mp4
│ │ ├── playback-video
│ │ │ └── main.qml
│ │ └── sound-effects
│ │ │ ├── basic.qml
│ │ │ ├── beep.wav
│ │ │ ├── complete.qml
│ │ │ └── swosh.wav
│ ├── summary.md
│ └── video-streams.md
├── ch12-qtquick3d
│ ├── animations.md
│ ├── assets.md
│ ├── assets
│ │ ├── asset-first-input.png
│ │ ├── asset-second-input.png
│ │ ├── balsamui-1.png
│ │ ├── balsamui-2.png
│ │ ├── basicscene.png
│ │ ├── blender-export-collada.png
│ │ ├── blender-export-menu.png
│ │ ├── blender-monkey-with-bones.png
│ │ ├── blender-monkey.png
│ │ ├── default-material.png
│ │ ├── light_directional.png
│ │ ├── light_point.png
│ │ ├── light_spot.png
│ │ ├── materials-no-skybox.png
│ │ ├── materials.png
│ │ ├── meshes.png
│ │ ├── mix-2d-and-3d.png
│ │ ├── monkey.gif
│ │ ├── principled-material.png
│ │ └── rotation.png
│ ├── basics.md
│ ├── intro.md
│ ├── materials-and-light.md
│ ├── mixing-2d-and-3d.md
│ ├── src
│ │ ├── animations
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Monkey_with_bones.qml
│ │ │ ├── blender
│ │ │ │ ├── monkey-with-bones.blend
│ │ │ │ └── monkey-with-bones.dae
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── meshes
│ │ │ │ └── suzanne.mesh
│ │ ├── basicasset
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Monkey.qml
│ │ │ ├── blender
│ │ │ │ └── monkey.blend
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── meshes
│ │ │ │ └── suzanne.mesh
│ │ │ └── monkey.dae
│ │ ├── basicmaterials
│ │ │ ├── CMakeLists.txt
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── maps
│ │ │ │ └── skybox.jpg
│ │ │ └── meshes
│ │ │ │ └── suzanne.mesh
│ │ ├── basicscene
│ │ │ ├── CMakeLists.txt
│ │ │ ├── main.cpp
│ │ │ └── main.qml
│ │ ├── defaultmaterial
│ │ │ ├── CMakeLists.txt
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── maps
│ │ │ │ └── skybox.jpg
│ │ │ └── meshes
│ │ │ │ └── suzanne.mesh
│ │ ├── lights
│ │ │ ├── CMakeLists.txt
│ │ │ ├── main.cpp
│ │ │ └── main.qml
│ │ ├── meshes
│ │ │ ├── CMakeLists.txt
│ │ │ ├── main.cpp
│ │ │ └── main.qml
│ │ ├── mix2d3d
│ │ │ ├── CMakeLists.txt
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── meshes
│ │ │ │ └── suzanne.mesh
│ │ ├── principledmaterial
│ │ │ ├── CMakeLists.txt
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── maps
│ │ │ │ └── skybox.jpg
│ │ │ └── meshes
│ │ │ │ └── suzanne.mesh
│ │ └── translations
│ │ │ ├── CMakeLists.txt
│ │ │ ├── main.cpp
│ │ │ └── main.qml
│ └── summary.md
├── ch13-networking
│ ├── authentication.md
│ ├── http-requests.md
│ ├── images
│ │ ├── oauth-spotify-app.png
│ │ ├── oauth-spotify-dashboard.png
│ │ ├── oauth-spotify-result.png
│ │ ├── ws_client.png
│ │ └── ws_echo.png
│ ├── local-files.md
│ ├── networking.md
│ ├── rest-api.md
│ ├── serve-qml.md
│ ├── src
│ │ ├── http_v1
│ │ │ ├── Button.qml
│ │ │ ├── http_v1.qmlproject
│ │ │ ├── main.qml
│ │ │ ├── main2.qml
│ │ │ ├── qmldir
│ │ │ ├── remote.qml
│ │ │ └── remote2.qml
│ │ ├── httprequest
│ │ │ ├── Thumbnail.qml
│ │ │ ├── httprequest.qml
│ │ │ └── httprequest.qmlproject
│ │ ├── localfiles
│ │ │ ├── colors.json
│ │ │ ├── colors.xml
│ │ │ ├── localfiles.qml
│ │ │ ├── localfiles.qmlproject
│ │ │ └── localfilesxmlmodel.qml
│ │ ├── oauth
│ │ │ ├── CMakeLists.txt
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── spotifyapi.cpp
│ │ │ ├── spotifyapi.h
│ │ │ ├── spotifymodel.cpp
│ │ │ └── spotifymodel.h
│ │ ├── requests
│ │ │ └── http
│ │ │ │ ├── colors.json
│ │ │ │ └── colors.xml
│ │ ├── rest
│ │ │ ├── Button.qml
│ │ │ ├── StatusLabel.qml
│ │ │ ├── colorservice.js
│ │ │ ├── rest.qml
│ │ │ └── rest.qmlproject
│ │ ├── restservice
│ │ │ ├── colors.json
│ │ │ └── server.py
│ │ ├── serve-qml-basics
│ │ │ ├── GistExample.qml
│ │ │ ├── LocalHostExample.qml
│ │ │ └── RemoteComponent.qml
│ │ ├── serve-qml-networked-components
│ │ │ ├── LibraryExample.qml
│ │ │ ├── SimpleExample.qml
│ │ │ └── remote
│ │ │ │ ├── Button.qml
│ │ │ │ ├── RemoteComponent.qml
│ │ │ │ └── qmldir
│ │ ├── ws
│ │ │ ├── ws_client
│ │ │ │ ├── ChatInput.qml
│ │ │ │ ├── ChatView.qml
│ │ │ │ ├── Label.qml
│ │ │ │ ├── test.qml
│ │ │ │ ├── ws_client.qml
│ │ │ │ └── ws_client.qmlproject
│ │ │ └── ws_server
│ │ │ │ └── server.js
│ │ └── wsecho
│ │ │ ├── wsecho.qml
│ │ │ └── wsecho.qmlproject
│ ├── summary.md
│ ├── templates.md
│ └── web-sockets.md
├── ch14-storage
│ ├── images
│ │ └── crazy_rect.png
│ ├── local-storage.md
│ ├── settings.md
│ ├── src
│ │ ├── colorstore
│ │ │ └── colorstore.qml
│ │ ├── db-snippet
│ │ │ └── main.qml
│ │ ├── rectangle
│ │ │ └── main.qml
│ │ └── sqloffline
│ │ │ ├── cities.csv
│ │ │ └── csvtosql.py
│ └── storage.md
├── ch15-dynamicqml
│ ├── assets
│ │ └── automatic
│ │ │ ├── connections.png
│ │ │ ├── empty.dir
│ │ │ ├── loader-analog.png
│ │ │ └── loader-digital.png
│ ├── dynamic-objects.md
│ ├── dynamic-qml.md
│ ├── loading-components.md
│ ├── src
│ │ ├── connections-parent
│ │ │ ├── Flasher.qml
│ │ │ └── main.qml
│ │ ├── connections
│ │ │ └── main.qml
│ │ ├── create-object
│ │ │ └── main.qml
│ │ ├── dynamic-scene
│ │ │ ├── create-object.js
│ │ │ ├── main.qml
│ │ │ ├── rocket.png
│ │ │ ├── rocket.qml
│ │ │ ├── rocket@2x.png
│ │ │ ├── ufo.png
│ │ │ ├── ufo.qml
│ │ │ └── ufo@2x.png
│ │ ├── load-component
│ │ │ ├── create-component.js
│ │ │ ├── dynamic-image.qml
│ │ │ ├── image1.png
│ │ │ ├── image2.png
│ │ │ └── main.qml
│ │ ├── loader
│ │ │ ├── Analog.qml
│ │ │ ├── Digital.qml
│ │ │ ├── main.qml
│ │ │ ├── ss-analog.qml
│ │ │ └── ss-digital.qml
│ │ └── screenshots.qml
│ ├── summary.md
│ └── tracking-objects.md
├── ch16-javascript
│ ├── assets
│ │ └── jsconsole.png
│ ├── html-qml.md
│ ├── javascript.md
│ ├── js-console.md
│ ├── js-language.md
│ ├── js-objects.md
│ └── src
│ │ └── JSConsole
│ │ ├── JSConsole.qml
│ │ ├── JSConsole.qmlproject
│ │ └── jsconsole.js
├── ch17-qtcpp
│ ├── assets
│ │ └── cityui.graffle
│ ├── boilerplate.md
│ ├── build-system.md
│ ├── common-classes.md
│ ├── cpp-models.md
│ ├── images
│ │ ├── modelview.png
│ │ ├── storecontent.png
│ │ └── yourapplication.png
│ ├── qobject.md
│ ├── qtcpp.md
│ └── src
│ │ ├── CMakeLists.txt
│ │ ├── coreapp
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ │ ├── modelview
│ │ ├── Background.qml
│ │ ├── CMakeLists.txt
│ │ ├── ListDelegate.qml
│ │ ├── ListHighlight.qml
│ │ ├── TextEntry.qml
│ │ ├── dataentrymodel.cpp
│ │ ├── dataentrymodel.h
│ │ ├── deployment.pri
│ │ ├── dynamicentrymodel.cpp
│ │ ├── dynamicentrymodel.h
│ │ ├── main.cpp
│ │ ├── main.qml
│ │ ├── qml.qrc
│ │ ├── remove.png
│ │ ├── roleentrymodel.cpp
│ │ └── roleentrymodel.h
│ │ ├── qtfoundation
│ │ ├── CMakeLists.txt
│ │ └── tst_foundation.cpp
│ │ ├── remove.png
│ │ ├── uiapp
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── main.cpp
│ │ ├── mainwindow.cpp
│ │ └── mainwindow.h
│ │ └── valuemodel
│ │ ├── Background.qml
│ │ ├── CMakeLists.txt
│ │ ├── ListDelegate.qml
│ │ ├── ListHighlight.qml
│ │ ├── TextEntry.qml
│ │ ├── adaptivemodel.cpp
│ │ ├── adaptivemodel.h
│ │ ├── data
│ │ ├── cities.csv
│ │ ├── cities.json
│ │ └── convert.py
│ │ ├── deployment.pri
│ │ ├── flags
│ │ ├── 22px-Flag_of_Argentina.svg.png
│ │ ├── 22px-Flag_of_Bangladesh.svg.png
│ │ ├── 22px-Flag_of_Brazil.svg.png
│ │ ├── 22px-Flag_of_Chile.svg.png
│ │ ├── 22px-Flag_of_Colombia.svg.png
│ │ ├── 22px-Flag_of_Cote_d'Ivoire.svg.png
│ │ ├── 22px-Flag_of_Egypt.svg.png
│ │ ├── 22px-Flag_of_Germany.svg.png
│ │ ├── 22px-Flag_of_India.svg.png
│ │ ├── 22px-Flag_of_Indonesia.svg.png
│ │ ├── 22px-Flag_of_Iran.svg.png
│ │ ├── 22px-Flag_of_Iraq.svg.png
│ │ ├── 22px-Flag_of_Japan.svg.png
│ │ ├── 22px-Flag_of_Kenya.svg.png
│ │ ├── 22px-Flag_of_Mexico.svg.png
│ │ ├── 22px-Flag_of_Myanmar.svg.png
│ │ ├── 22px-Flag_of_Nigeria.svg.png
│ │ ├── 22px-Flag_of_North_Korea.svg.png
│ │ ├── 22px-Flag_of_Pakistan.svg.png
│ │ ├── 22px-Flag_of_Peru.svg.png
│ │ ├── 22px-Flag_of_Russia.svg.png
│ │ ├── 22px-Flag_of_Saudi_Arabia.svg.png
│ │ ├── 22px-Flag_of_Singapore.svg.png
│ │ ├── 22px-Flag_of_South_Africa.svg.png
│ │ ├── 22px-Flag_of_South_Korea.svg.png
│ │ ├── 22px-Flag_of_Spain.svg.png
│ │ ├── 22px-Flag_of_Thailand.svg.png
│ │ ├── 22px-Flag_of_Turkey.svg.png
│ │ ├── 22px-Flag_of_Vietnam.svg.png
│ │ ├── 22px-Flag_of_the_Democratic_Republic_of_the_Congo.svg.png
│ │ ├── 22px-Flag_of_the_People's_Republic_of_China.svg.png
│ │ ├── 22px-Flag_of_the_United_Kingdom.svg.png
│ │ └── 22px-Flag_of_the_United_States.svg.png
│ │ ├── main.cpp
│ │ ├── main.qml
│ │ ├── qml.qrc
│ │ ├── remove.png
│ │ ├── valuemodel.cpp
│ │ └── valuemodel.h
├── ch18-extensions
│ ├── create-plugin.md
│ ├── extending-qml.md
│ ├── fileio-demo.md
│ ├── images
│ │ ├── cityui_empty.png
│ │ ├── cityui_mock.png
│ │ ├── cityui_populated.png
│ │ └── cityui_table.png
│ ├── plugin-content.md
│ ├── qml-runtime.md
│ ├── src
│ │ ├── CMakeLists.txt
│ │ ├── CityUI
│ │ │ ├── CMakeLists.txt
│ │ │ ├── LICENSE.md
│ │ │ ├── cities.json
│ │ │ ├── deployment.pri
│ │ │ ├── flags
│ │ │ │ ├── 22px-Flag_of_Argentina.svg.png
│ │ │ │ ├── 22px-Flag_of_Bangladesh.svg.png
│ │ │ │ ├── 22px-Flag_of_Brazil.svg.png
│ │ │ │ ├── 22px-Flag_of_Chile.svg.png
│ │ │ │ ├── 22px-Flag_of_Colombia.svg.png
│ │ │ │ ├── 22px-Flag_of_Cote_d'Ivoire.svg.png
│ │ │ │ ├── 22px-Flag_of_Egypt.svg.png
│ │ │ │ ├── 22px-Flag_of_Germany.svg.png
│ │ │ │ ├── 22px-Flag_of_India.svg.png
│ │ │ │ ├── 22px-Flag_of_Indonesia.svg.png
│ │ │ │ ├── 22px-Flag_of_Iran.svg.png
│ │ │ │ ├── 22px-Flag_of_Iraq.svg.png
│ │ │ │ ├── 22px-Flag_of_Japan.svg.png
│ │ │ │ ├── 22px-Flag_of_Kenya.svg.png
│ │ │ │ ├── 22px-Flag_of_Mexico.svg.png
│ │ │ │ ├── 22px-Flag_of_Myanmar.svg.png
│ │ │ │ ├── 22px-Flag_of_Nigeria.svg.png
│ │ │ │ ├── 22px-Flag_of_North_Korea.svg.png
│ │ │ │ ├── 22px-Flag_of_Pakistan.svg.png
│ │ │ │ ├── 22px-Flag_of_Peru.svg.png
│ │ │ │ ├── 22px-Flag_of_Russia.svg.png
│ │ │ │ ├── 22px-Flag_of_Saudi_Arabia.svg.png
│ │ │ │ ├── 22px-Flag_of_Singapore.svg.png
│ │ │ │ ├── 22px-Flag_of_South_Africa.svg.png
│ │ │ │ ├── 22px-Flag_of_South_Korea.svg.png
│ │ │ │ ├── 22px-Flag_of_Spain.svg.png
│ │ │ │ ├── 22px-Flag_of_Thailand.svg.png
│ │ │ │ ├── 22px-Flag_of_Turkey.svg.png
│ │ │ │ ├── 22px-Flag_of_Vietnam.svg.png
│ │ │ │ ├── 22px-Flag_of_the_Democratic_Republic_of_the_Congo.svg.png
│ │ │ │ ├── 22px-Flag_of_the_People's_Republic_of_China.svg.png
│ │ │ │ ├── 22px-Flag_of_the_United_Kingdom.svg.png
│ │ │ │ └── 22px-Flag_of_the_United_States.svg.png
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── qml.qrc
│ │ │ └── remove.png
│ │ ├── basicmain
│ │ │ ├── CMakeLists.txt
│ │ │ ├── basicmain.qrc
│ │ │ ├── main.cpp
│ │ │ └── main.qml
│ │ └── fileio
│ │ │ ├── CMakeLists.txt
│ │ │ ├── fileio.cpp
│ │ │ ├── fileio.h
│ │ │ ├── fileio_plugin.cpp
│ │ │ └── qmldir
│ ├── summary.md
│ └── using-fileio.md
├── ch19-python
│ ├── assets
│ │ ├── cpu-load-model.png
│ │ ├── pyside2-hello-world.png
│ │ ├── pyside6-hello-world.png
│ │ └── qml-hello-world.png
│ ├── build-app.md
│ ├── installing.md
│ ├── introduction.md
│ ├── limitations.md
│ ├── qt-python.md
│ ├── src
│ │ ├── basic
│ │ │ ├── basic.py
│ │ │ └── main.qml
│ │ ├── class-context-property
│ │ │ ├── class.py
│ │ │ └── main.qml
│ │ ├── class-registered-type
│ │ │ ├── class.py
│ │ │ └── main.qml
│ │ ├── model
│ │ │ ├── main.qml
│ │ │ └── model.py
│ │ └── property
│ │ │ ├── main.qml
│ │ │ └── property.py
│ └── summary.md
├── ch20-qtformcu
│ ├── assets
│ │ ├── counter.png
│ │ ├── create-project-1.png
│ │ ├── create-project-2.png
│ │ ├── create-project-3.png
│ │ ├── devices.png
│ │ ├── hello-world-orange.png
│ │ ├── hello-world-red.png
│ │ ├── installer-mcu.png
│ │ ├── kits.png
│ │ ├── model-1.png
│ │ ├── model-2.png
│ │ ├── model-3.png
│ │ ├── qtcreator-qml-import-path.png
│ │ ├── qtcreator-with-project.png
│ │ └── qul-hello-world.png
│ ├── cpp.md
│ ├── helloworld.md
│ ├── models.md
│ ├── qtformcu.md
│ ├── setup.md
│ ├── src
│ │ ├── cppintegration
│ │ │ ├── CMakeLists.txt
│ │ │ ├── PlainButton.qml
│ │ │ ├── counter.cpp
│ │ │ ├── counter.h
│ │ │ └── cppintegration.qml
│ │ ├── cppmodel
│ │ │ ├── CMakeLists.txt
│ │ │ ├── citymodel.cpp
│ │ │ ├── citymodel.h
│ │ │ └── cppmodel.qml
│ │ └── helloworld
│ │ │ ├── CMakeLists.txt
│ │ │ └── helloworld.qml
│ └── summary.md
├── index.md
└── preface
│ ├── acknowledgements.md
│ ├── assets
│ ├── clorquet.jpg
│ ├── jryannel.jpg
│ └── jthelin.jpg
│ ├── authors.md
│ └── preface.md
├── package.json
├── scripts
├── build-examples.sh
├── lint-examples.sh
├── make-screenshots.sh
└── package-examples.sh
└── yarn.lock
/.github/workflows/release.yaml:
--------------------------------------------------------------------------------
1 | name: build-release
2 | on:
3 | push:
4 | branches:
5 | - 'release'
6 |
7 | jobs:
8 | build-qt-io:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Trigger qt.io build
12 | env:
13 | QT_IO_TRIGGER: ${{ secrets.QT_IO_TRIGGER }}
14 | run: curl $QT_IO_TRIGGER
15 |
--------------------------------------------------------------------------------
/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | project(qt6book)
4 |
5 | add_subdirectory(docs)
6 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | # Licenses
2 |
3 | - The LICENSE.text and LICENSE.code declares the license used for text and code unless otherwise stated differently.
4 |
5 | # Additional Licenses
6 |
7 | The following files are provided under the following licenses:
8 |
9 | - docs/ch12-qtquick3d/src/basicmaterials/maps/skybox.jpg
10 |
11 | Creative Commons Attribution-Share Alike 3.0 Unported
12 | Owned by SpektorDude, source https://commons.wikimedia.org/wiki/File:Skybox.jpg
13 |
--------------------------------------------------------------------------------
/assets/frontpage.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/assets/frontpage.jpg
--------------------------------------------------------------------------------
/assets/frontpage.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/assets/frontpage.pdf
--------------------------------------------------------------------------------
/docs/.vuepress/styles/index.styl:
--------------------------------------------------------------------------------
1 | @media print {
2 |
3 | /* The page */
4 | @page {
5 | size: portrait;
6 |
7 | margin-left: 2.54cm;
8 | margin-right: 2.54cm;
9 | margin-top: 2.54cm;
10 | margin-bottom: 3.76cm;
11 | }
12 |
13 | /* Tips, caveats, etc */
14 | div.custom-block {
15 | /* Avoid page-breaks */
16 | page-break-inside: avoid;
17 | }
18 |
19 | /* All images */
20 | img {
21 | /* Center */
22 | display: block;
23 | margin-left: auto;
24 | margin-right: auto;
25 |
26 | /* Avoid page-breaks */
27 | page-break-inside: avoid;
28 | }
29 |
30 | /* Print links */
31 | p a::after {
32 | content: " (" attr(href) ") ";
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/docs/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | add_subdirectory(ch07-modelview/src)
4 | add_subdirectory(ch16-qtcpp/src)
5 | add_subdirectory(ch17-extensions/src)
6 |
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/background.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/ch01_diragrams.graffle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/ch01_diragrams.graffle
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/ch01_overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/ch01_overview.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/essential_modules.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/essential_modules.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/pinwheel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/pinwheel.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/pole.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/pole.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/qt-modules.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/qt-modules.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/qt6_overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/qt6_overview.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/scene.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/scene.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/scene2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/scene2.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/showcase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/showcase.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/showcase2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/showcase2.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/showcase3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/showcase3.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/assets/showcase4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/assets/showcase4.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/src/Showcase/images/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/src/Showcase/images/background.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/src/Showcase/images/blur.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/src/Showcase/images/blur.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/src/Showcase/images/pinwheel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/src/Showcase/images/pinwheel.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/src/Showcase/images/pole.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/src/Showcase/images/pole.png
--------------------------------------------------------------------------------
/docs/ch01-meetqt/src/Showcase/showcase.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.4.1 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: "Showcase.qml"
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch01-meetqt/src/Showcase/something.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch01-meetqt/src/Showcase/something.png
--------------------------------------------------------------------------------
/docs/ch02-start/assets/example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch02-start/assets/example.png
--------------------------------------------------------------------------------
/docs/ch02-start/assets/qtcreator-run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch02-start/assets/qtcreator-run.png
--------------------------------------------------------------------------------
/docs/ch02-start/quick-start.md:
--------------------------------------------------------------------------------
1 | # Quick Start
2 |
3 | This chapter will introduce you to developing with Qt 6. We will show you how to install the Qt SDK and how you can create as well as run a simple *hello world* application using the Qt Creator IDE.
4 |
5 |
--------------------------------------------------------------------------------
/docs/ch02-start/summary.md:
--------------------------------------------------------------------------------
1 | # Summary
2 |
3 | We have seen how to install the Qt SDK and how to create our first application. Then we walked you through the different application types to give you an overview of Qt, showing off some features Qt offers for application development. I hope you got a good impression that Qt is a very rich user interface toolkit and offers everything an application developer can hope for and more. Still, Qt does not lock you into specific libraries, as you can always use other libraries, or even extend Qt yourself. It is also rich when it comes to supporting different application models: console, classic desktop user interface, and touch user interface.
4 |
--------------------------------------------------------------------------------
/docs/ch03-qtcreator/assets/creator-edit-shortcuts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch03-qtcreator/assets/creator-edit-shortcuts.png
--------------------------------------------------------------------------------
/docs/ch03-qtcreator/assets/creator-editor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch03-qtcreator/assets/creator-editor.png
--------------------------------------------------------------------------------
/docs/ch03-qtcreator/assets/creator-locator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch03-qtcreator/assets/creator-locator.png
--------------------------------------------------------------------------------
/docs/ch03-qtcreator/assets/creator-welcome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch03-qtcreator/assets/creator-welcome.png
--------------------------------------------------------------------------------
/docs/ch03-qtcreator/assets/locator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch03-qtcreator/assets/locator.png
--------------------------------------------------------------------------------
/docs/ch03-qtcreator/assets/qtcreator-screenshots.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch03-qtcreator/assets/qtcreator-screenshots.png
--------------------------------------------------------------------------------
/docs/ch03-qtcreator/debugging.md:
--------------------------------------------------------------------------------
1 | # Debugging
2 |
3 | Qt Creator is an easy to use and well designed IDE to code your Qt C++ and QML projects. It has world class `CMake` support and is pre-configured for Qt C++ development. Due to its excellent C++ support it can also be used for any other vanilla C++ projects.
4 |
5 | ::: tip
6 | Hmm, I just realized I have not used debugging a lot. I hope this is a good sign. Need to ask someone to help me out here. In the meantime have a look at the [Qt Creator documentation](http://http://doc.qt.io/qtcreator/index.html).
7 | :::
8 |
--------------------------------------------------------------------------------
/docs/ch03-qtcreator/editor.md:
--------------------------------------------------------------------------------
1 | # Using the Editor
2 |
3 | When you open a project or you just created a new project Qt Creator will switch to the edit mode. You should see on the left of your project files and in the center area the code editor. Selecting files on the left will open them in the editor.
4 |
5 | The editor provides syntax highlighting, code-completion, and quick-fixes. Also, it supports several commands for code refactoring. When working with the editor you will have the feeling that everything reacts immediately. This is thanks to the developers of Qt Creator which made the tool feel really snappy.
6 |
7 | 
8 |
9 |
--------------------------------------------------------------------------------
/docs/ch03-qtcreator/locator.md:
--------------------------------------------------------------------------------
1 | # Locator
2 |
3 | The locator is a central component inside Qt Creator. It allows developers to navigate fast to specific locations inside the source code or inside the help. To open the locator press `Ctrl+K`.
4 |
5 | 
6 |
7 | A pop-up is coming from the bottom left and shows a list of options. If you just search a file inside your project just hit the first letter from the file name. The locator also accepts wild-cards, so `\*main.qml` will also work. Otherwise, you can also prefix your search to search for the specific content type.
8 |
9 | 
10 |
11 | Please try it out. For example to open the help for the QML element Rectangle open the locator and type `? rectangle`. While you type the locator will update the suggestions until you found the reference you are looking for.
12 |
13 |
--------------------------------------------------------------------------------
/docs/ch03-qtcreator/qt-creator.md:
--------------------------------------------------------------------------------
1 | # Qt Creator IDE
2 |
3 | Qt Creator is the default integrated development environment for Qt. It’s written from Qt developers for Qt developers. The IDE is available on all major desktop platforms, e.g. Windows/Mac/Linux. We have already seen customers using Qt Creator on an embedded device. Qt Creator has a lean efficient user interface and it really shines in making the developer productive. Qt Creator can be used to run your Qt Quick user interface but also to compile c++ code and this for your host system or for another device using a cross-compiler.
4 |
5 | 
6 |
7 | ::: warning
8 | Update screenshots!
9 | :::
10 |
11 |
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/anchorgrid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/anchorgrid.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/anchors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/anchors.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/button_clicked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/button_clicked.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/button_waiting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/button_waiting.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/chapter04.graffle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/chapter04.graffle
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/column.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/column.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/flow.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/grid.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/image.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/keys.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/keys.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/mousearea1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/mousearea1.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/mousearea2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/mousearea2.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/objects.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/objects.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/objects_overlap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/objects_overlap.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/objects_transformed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/objects_transformed.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/qmltree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/qmltree.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/rectangle2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/rectangle2.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/rectangle3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/rectangle3.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/repeater.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/repeater.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/row.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/row.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/scene.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/scene.pdf
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/scene.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/scene.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/text.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/textedit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/textedit.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/textinput.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/textinput.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/assets/textinput3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/assets/textinput3.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/quick-start.md:
--------------------------------------------------------------------------------
1 | # Quick Starter
2 |
3 |
4 | This chapter provides an overview of QML, the declarative user interface language used in Qt 6. We will discuss the QML syntax, which is a tree of elements, followed by an overview of the most important basic elements. Later we will briefly look at how to create our own elements, called components and how to transform elements using property manipulations. Towards the end, we will look at how to arrange elements together in a layout and finally have a look at elements where the user can provide input.
5 |
6 |
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/components/components.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.4.1 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: ""
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/concepts/assets/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/concepts/assets/background.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/concepts/assets/triangle_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/concepts/assets/triangle_blue.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/concepts/assets/triangle_blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/concepts/assets/triangle_blue@2x.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/concepts/assets/triangle_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/concepts/assets/triangle_green.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/concepts/assets/triangle_green@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/concepts/assets/triangle_green@2x.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/concepts/assets/triangle_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/concepts/assets/triangle_red.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/concepts/assets/triangle_red@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/concepts/assets/triangle_red@2x.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/concepts/concepts.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.4.1 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 |
7 | /* Include .qml, .js, and image files from current directory and subdirectories */
8 | QmlFiles {
9 | directory: "."
10 | }
11 | JavaScriptFiles {
12 | directory: "."
13 | }
14 | ImageFiles {
15 | directory: "."
16 | }
17 | /* List of plugin directories passed to QML runtime */
18 | // importPaths: [ "../exampleplugin" ]
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/input/input.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.4.1 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: "input.qml"
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/layout/anchors.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.4.1 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | /* Include .qml, .js, and image files from current directory and subdirectories */
7 | QmlFiles {
8 | directory: "."
9 | }
10 | JavaScriptFiles {
11 | directory: "."
12 | }
13 | ImageFiles {
14 | directory: "."
15 | }
16 | /* List of plugin directories passed to QML runtime */
17 | // importPaths: [ "../exampleplugin" ]
18 | }
19 |
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/positioners/assets/beach_s01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/positioners/assets/beach_s01.jpg
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/positioners/assets/beach_s02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/positioners/assets/beach_s02.jpg
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/positioners/assets/beach_s03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/positioners/assets/beach_s03.jpg
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/positioners/assets/beach_s04.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/positioners/assets/beach_s04.jpg
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/positioners/positioners.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.4.1 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: "positioners.qml"
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/transformation/assets/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/transformation/assets/background.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/transformation/assets/background@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/transformation/assets/background@2x.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/transformation/assets/box_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/transformation/assets/box_green.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/transformation/assets/box_green@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/transformation/assets/box_green@2x.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/transformation/assets/box_green@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/transformation/assets/box_green@3x.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/transformation/assets/circle_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/transformation/assets/circle_blue.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/transformation/assets/circle_blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/transformation/assets/circle_blue@2x.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/transformation/assets/triangle_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/transformation/assets/triangle_red.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/transformation/assets/triangle_red@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch04-qmlstart/src/transformation/assets/triangle_red@2x.png
--------------------------------------------------------------------------------
/docs/ch04-qmlstart/src/transformation/transformation.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.4.1 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: "transformation.qml"
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch05-fluid/advanced.md:
--------------------------------------------------------------------------------
1 | # Advanced Techniques
2 |
3 | Nothing advanced here :-)
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/animation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/animation.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/animation_loop.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/animation_loop.gif
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/animation_sequence.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/animation_sequence.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/animationtypes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/animationtypes.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/animationtypes_start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/animationtypes_start.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/automatic/easingcurves.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/automatic/easingcurves.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/easingtypes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/easingtypes.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/groupedanimation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/groupedanimation.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/parallelanimation_sequence.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/parallelanimation_sequence.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/sequentialanimation_sequence.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/sequentialanimation_sequence.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/soccer_init.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/soccer_init.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/soccer_plan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/soccer_plan.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/soccer_stage1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/soccer_stage1.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/soccer_stage2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/soccer_stage2.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/soccer_stage3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/soccer_stage3.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/soccer_stage4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/soccer_stage4.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/trafficlight_sketch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/trafficlight_sketch.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/trafficlight_states.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/trafficlight_states.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/trafficlight_transition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/trafficlight_transition.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/assets/trafficlight_ui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/assets/trafficlight_ui.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/fluid-elements.md:
--------------------------------------------------------------------------------
1 | # Fluid Elements
2 |
3 | Until now, we have mostly looked at some simple graphical elements and how to arrange and manipulate them.
4 |
5 | This chapter is about how to make these changes more interesting by animating them.
6 |
7 | Animations are one of the key foundations for modern, slick user interfaces, and can be employed in your user interface via states, transitions and animations. Each state defines a set of property changes and can be combined with animations on state changes. These changes are described as a transition from one state to another state.
8 |
9 | Besides animations being used during transitions, they can also be used as standalone elements triggered by some scripted events.
10 |
11 |
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/animation.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.4.1 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: ""
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/background.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/background@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/background@2x.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/background_medium.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/background_medium.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/background_medium@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/background_medium@2x.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/box_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/box_blue.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/box_blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/box_blue@2x.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/box_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/box_green.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/box_green@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/box_green@2x.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/box_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/box_red.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/box_red@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/box_red@2x.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/planet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/planet.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/rocket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/rocket.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/rocket2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/rocket2.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/soccer_ball.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/soccer_ball.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/soccer_shadow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/soccer_shadow.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/ufo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/ufo.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/animation/assets/ufo_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/animation/assets/ufo_background.png
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/easing/Box.qml:
--------------------------------------------------------------------------------
1 | import QtQuick
2 |
3 | Rectangle {
4 | id: root
5 | width: 64
6 | height: 64
7 | color: "#ffffff"
8 | border.color: Qt.darker(color, 1.2)
9 | property alias text: label.text
10 | property color fontColor: '#1f1f1f'
11 | Text {
12 | id: label
13 | anchors.centerIn: parent
14 | font.pixelSize: 14
15 | color: root.fontColor
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/easing/EasingCurves.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: "EasingCurves.qml"
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/easing/Tracer.qml:
--------------------------------------------------------------------------------
1 | import QtQuick
2 |
3 | Rectangle {
4 | anchors.fill: parent
5 | color: "transparent"
6 | border.color: "red"
7 | }
8 |
--------------------------------------------------------------------------------
/docs/ch05-fluid/src/easing/blueprint.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch05-fluid/src/easing/blueprint.jpg
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/android-selector.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/android-selector.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/applicationwindow-areas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/applicationwindow-areas.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/button-background-checked-enlarged.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/button-background-checked-enlarged.9.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/button-background-enlarged.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/button-background-enlarged.9.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/dialog-state-machine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/dialog-state-machine.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/interface-document-window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/interface-document-window.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/interface-side-by-side-community.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/interface-side-by-side-community.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/interface-side-by-side-current.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/interface-side-by-side-current.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/interface-side-by-side-user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/interface-side-by-side-user.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/interface-stack-about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/interface-stack-about.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/interface-stack-edit-profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/interface-stack-edit-profile.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/interface-stack-home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/interface-stack-home.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/interface-stack-profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/interface-stack-profile.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/nested-screens.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/nested-screens.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/side-by-side-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/side-by-side-screen.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/style-basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/style-basic.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/style-fusion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/style-fusion.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/style-imagine-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/style-imagine-example.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/style-imagine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/style-imagine.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/style-material.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/style-material.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/style-universal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/style-universal.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/viewer-about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/viewer-about.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/viewer-mobile-drawer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/viewer-mobile-drawer.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/viewer-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/viewer-mobile.png
--------------------------------------------------------------------------------
/docs/ch06-controls/assets/viewer-window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/assets/viewer-window.png
--------------------------------------------------------------------------------
/docs/ch06-controls/controls2.md:
--------------------------------------------------------------------------------
1 | # UI Controls
2 |
3 | This chapter shows how to use the Qt Quick Controls module. Qt Quick Controls are used to create advanced user interfaces built from standard components such as buttons, labels, sliders and so on.
4 |
5 | Qt Quick Controls can be arranged using the layout module and are easy to style. Also we will look into the various styles for the different platforms before diving into custom styling.
6 |
7 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-all/+android/qtquickcontrols2.conf:
--------------------------------------------------------------------------------
1 | [Controls]
2 | Style=Material
3 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-all/images/baseline-menu-24px.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-all/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
11 | if (engine.rootObjects().isEmpty())
12 | return -1;
13 |
14 | return app.exec();
15 | }
16 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-all/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 | ImageViewerWindow.qml
5 | +android/main.qml
6 | images/baseline-menu-24px.svg
7 | qtquickcontrols2.conf
8 | +android/qtquickcontrols2.conf
9 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-all/qtquickcontrols2.conf:
--------------------------------------------------------------------------------
1 | [Controls]
2 | Style=Fusion
3 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-desktop/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | QQuickStyle::setStyle("Fusion");
11 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
12 | if (engine.rootObjects().isEmpty())
13 | return -1;
14 |
15 | return app.exec();
16 | }
17 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-desktop/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 |
5 |
6 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-mobile/images/baseline-menu-24px.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-mobile/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | QQuickStyle::setStyle("Material");
11 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
12 | if (engine.rootObjects().isEmpty())
13 | return -1;
14 |
15 | return app.exec();
16 | }
17 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-mobile/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 | images/baseline-menu-24px.svg
5 |
6 |
7 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-native/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 |
5 | // ...
6 |
7 | int main(int argc, char *argv[])
8 | {
9 | QApplication app(argc, argv);
10 |
11 | // ...
12 |
13 | QQmlApplicationEngine engine;
14 | QQuickStyle::setStyle("Fusion");
15 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
16 | if (engine.rootObjects().isEmpty())
17 | return -1;
18 |
19 | return app.exec();
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imageviewer-native/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 |
5 |
6 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imagine-style/images/imagine/applicationwindow-background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/src/imagine-style/images/imagine/applicationwindow-background.png
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imagine-style/images/imagine/button-background-checked.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/src/imagine-style/images/imagine/button-background-checked.9.png
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imagine-style/images/imagine/button-background-pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/src/imagine-style/images/imagine/button-background-pressed.9.png
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imagine-style/images/imagine/button-background.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch06-controls/src/imagine-style/images/imagine/button-background.9.png
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imagine-style/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QGuiApplication app(argc, argv);
7 |
8 | QQmlApplicationEngine engine;
9 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
10 | if (engine.rootObjects().isEmpty())
11 | return -1;
12 |
13 | return app.exec();
14 | }
15 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imagine-style/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 | qtquickcontrols2.conf
5 | images/imagine/button-background-checked.9.png
6 | images/imagine/button-background-pressed.9.png
7 | images/imagine/button-background.9.png
8 | images/imagine/applicationwindow-background.png
9 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/imagine-style/qtquickcontrols2.conf:
--------------------------------------------------------------------------------
1 | [Controls]
2 | Style=Imagine
3 |
4 | [Imagine]
5 | Path=:images/imagine
6 |
7 | [Imagine\Palette]
8 | Text=#ffffff
9 | ButtonText=#ffffff
10 | BrightText=#ffffff
11 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-document-window/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication app(argc, argv);
7 |
8 | QQmlApplicationEngine engine;
9 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
10 | if (engine.rootObjects().isEmpty())
11 | return -1;
12 |
13 | return app.exec();
14 | }
15 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-document-window/main.qml:
--------------------------------------------------------------------------------
1 | import QtQuick
2 |
3 | DocumentWindow {
4 | visible: true
5 | }
6 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-document-window/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 | DocumentWindow.qml
5 |
6 |
7 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-side-by-side/Current.qml:
--------------------------------------------------------------------------------
1 | import QtQuick
2 | import QtQuick.Controls
3 |
4 | Page {
5 | header: Label {
6 | text: qsTr("Current")
7 | font.pixelSize: Qt.application.font.pixelSize * 2
8 | padding: 10
9 | }
10 |
11 | Label {
12 | text: qsTr("Current activity")
13 | anchors.centerIn: parent
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-side-by-side/TotalStats.qml:
--------------------------------------------------------------------------------
1 | import QtQuick
2 | import QtQuick.Controls
3 |
4 | Page {
5 | header: Label {
6 | text: qsTr("Community Stats")
7 | font.pixelSize: Qt.application.font.pixelSize * 2
8 | padding: 10
9 | }
10 |
11 | // ...
12 |
13 | Column {
14 | anchors.centerIn: parent
15 | spacing: 10
16 | Label {
17 | anchors.horizontalCenter: parent.horizontalCenter
18 | text: qsTr("Community statistics")
19 | }
20 | Button {
21 | anchors.horizontalCenter: parent.horizontalCenter
22 | text: qsTr("Back")
23 | onClicked: swipeView.setCurrentIndex(0);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-side-by-side/UserStats.qml:
--------------------------------------------------------------------------------
1 | import QtQuick
2 | import QtQuick.Controls
3 |
4 | Page {
5 | header: Label {
6 | text: qsTr("Your Stats")
7 | font.pixelSize: Qt.application.font.pixelSize * 2
8 | padding: 10
9 | }
10 |
11 | Label {
12 | text: qsTr("User statistics")
13 | anchors.centerIn: parent
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-side-by-side/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QGuiApplication app(argc, argv);
7 |
8 | QQmlApplicationEngine engine;
9 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
10 | if (engine.rootObjects().isEmpty())
11 | return -1;
12 |
13 | return app.exec();
14 | }
15 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-side-by-side/main.qml:
--------------------------------------------------------------------------------
1 | import QtQuick
2 | import QtQuick.Controls
3 |
4 | ApplicationWindow {
5 |
6 | // ...
7 |
8 | visible: true
9 | width: 640
10 | height: 480
11 |
12 | title: qsTr("Side-by-side")
13 |
14 | SwipeView {
15 | id: swipeView
16 | anchors.fill: parent
17 |
18 | Current {
19 | }
20 |
21 | UserStats {
22 | }
23 |
24 | TotalStats {
25 | }
26 |
27 | // ...
28 |
29 | }
30 |
31 | PageIndicator {
32 | anchors.bottom: parent.bottom
33 | anchors.horizontalCenter: parent.horizontalCenter
34 |
35 | currentIndex: swipeView.currentIndex
36 | count: swipeView.count
37 | }
38 |
39 | // ...
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-side-by-side/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 | Current.qml
5 | UserStats.qml
6 | main.qml
7 | qtquickcontrols2.conf
8 | TotalStats.qml
9 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-side-by-side/qtquickcontrols2.conf:
--------------------------------------------------------------------------------
1 | ; This file can be edited to change the style of the application
2 | ; Read "Qt Quick Controls 2 Configuration File" for details:
3 | ; http://doc.qt.io/qt-5/qtquickcontrols2-configuration.html
4 |
5 | [Controls]
6 | Style=Default
7 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-stack/About.qml:
--------------------------------------------------------------------------------
1 | import QtQuick
2 | import QtQuick.Controls
3 |
4 | Page {
5 | title: qsTr("About")
6 |
7 | Label {
8 | anchors.centerIn: parent
9 | text: qsTr("About")
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-stack/EditProfile.qml:
--------------------------------------------------------------------------------
1 | import QtQuick
2 | import QtQuick.Controls
3 |
4 | Page {
5 | title: qsTr("Edit Profile")
6 |
7 | Label {
8 | anchors.centerIn: parent
9 | text: qsTr("Editing the profile")
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-stack/Home.qml:
--------------------------------------------------------------------------------
1 | import QtQuick
2 | import QtQuick.Controls
3 |
4 | Page {
5 | title: qsTr("Home")
6 |
7 | Label {
8 | anchors.centerIn: parent
9 | text: qsTr("Home Screen")
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-stack/Profile.qml:
--------------------------------------------------------------------------------
1 | import QtQuick
2 | import QtQuick.Controls
3 |
4 | Page {
5 | title: qsTr("Profile")
6 |
7 | Column {
8 | anchors.centerIn: parent
9 | spacing: 10
10 | Label {
11 | anchors.horizontalCenter: parent.horizontalCenter
12 | text: qsTr("Profile")
13 | }
14 | Button {
15 | anchors.horizontalCenter: parent.horizontalCenter
16 | text: qsTr("Edit");
17 | onClicked: stackView.push("EditProfile.qml")
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-stack/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
7 |
8 | QGuiApplication app(argc, argv);
9 |
10 | QQmlApplicationEngine engine;
11 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
12 | if (engine.rootObjects().isEmpty())
13 | return -1;
14 |
15 | return app.exec();
16 | }
17 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-stack/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 | Home.qml
5 | Profile.qml
6 | About.qml
7 | qtquickcontrols2.conf
8 | EditProfile.qml
9 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/ch06-controls/src/interface-stack/qtquickcontrols2.conf:
--------------------------------------------------------------------------------
1 | ; This file can be edited to change the style of the application
2 | ; Read "Qt Quick Controls 2 Configuration File" for details:
3 | ; http://doc.qt.io/qt-5/qtquickcontrols2-configuration.html
4 |
5 | [Controls]
6 | Style=Default
7 |
--------------------------------------------------------------------------------
/docs/ch06-controls/summary.md:
--------------------------------------------------------------------------------
1 | # Summary
2 |
3 | In this chapter we have looked at Qt Quick Controls 2. They offer a set of elements that provide more high-level concepts than the basic QML elements. For most scenarios, you will save memory and gain performance by using the Qt Quick Controls 2, as they are based around optimized C++ logic instead of Javascript and QML.
4 |
5 | We’ve demonstrated how different styles can be used, and how a common code base can be developed using file selectors. This way, a single code base can address multiple platforms with different user interactions and visual styles.
6 |
7 | Finally, we have looked at the Imagine style, which allows you to completely customize the look of a QML application through the use of graphical assets. In this way, an application can be reskinned without any code change whatsoever.
8 |
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/delegates-basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/delegates-basic.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/delegates-expanding-large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/delegates-expanding-large.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/delegates-expanding-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/delegates-expanding-small.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/delegates-objectmodel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/delegates-objectmodel.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/empty.dir:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/empty.dir
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/gridview-basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/gridview-basic.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/listview-basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/listview-basic.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/listview-clip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/listview-clip.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/listview-header-footer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/listview-header-footer.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/listview-highlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/listview-highlight.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/listview-horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/listview-horizontal.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/listview-sections.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/listview-sections.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/pathview-coverview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/pathview-coverview.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/repeater-array.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/repeater-array.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/repeater-delegate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/repeater-delegate.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/repeater-model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/repeater-model.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/repeater-number.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/repeater-number.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/automatic/xmllistmodel-images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/automatic/xmllistmodel-images.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/model-view-delegate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/model-view-delegate.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/assets/tableview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/assets/tableview.png
--------------------------------------------------------------------------------
/docs/ch07-modelview/model-view.md:
--------------------------------------------------------------------------------
1 | # Model-View-Delegate
2 |
3 | As soon as the amount of data goes beyond the trivial, it is no longer feasible to keep a copy of the data with the presentation. This means that the presentation layer, what is seen by the user, needs to be separated by the data layer, the actual contents. In Qt Quick, data is separated from the presentation through a so called model-view separation. Qt Quick provides a set of premade views in which each data element is the visualization by a delegate. To utilize the system, one must understand these classes and know how to create appropriate delegates to get the right look and feel.
4 |
5 |
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | add_subdirectory(tableview)
4 |
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/ch06.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.4.1 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: ""
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/delegates/images/earth.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/src/delegates/images/earth.jpeg
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/delegates/images/jupiter.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/src/delegates/images/jupiter.jpeg
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/delegates/images/mars.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/src/delegates/images/mars.jpeg
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/delegates/images/mercury.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/src/delegates/images/mercury.jpeg
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/delegates/images/venus.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch07-modelview/src/delegates/images/venus.jpeg
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/tableview/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | project(tableview VERSION 1.0.0 LANGUAGES CXX)
4 |
5 | set(CMAKE_CXX_STANDARD 17)
6 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
7 |
8 | set(CMAKE_AUTOMOC ON)
9 | set(CMAKE_AUTORCC ON)
10 | set(CMAKE_AUTOUIC ON)
11 |
12 | find_package(Qt6 COMPONENTS Quick REQUIRED)
13 |
14 | add_executable(tableview
15 | tablemodel.cpp
16 | main.cpp
17 | qml.qrc
18 | )
19 |
20 | target_link_libraries(tableview PRIVATE Qt6::Quick)
21 |
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/tableview/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 |
5 | #include "tablemodel.h"
6 |
7 | int main(int argc, char *argv[])
8 | {
9 | QGuiApplication app(argc, argv);
10 |
11 | QQmlApplicationEngine engine;
12 | engine.rootContext()->setContextProperty("tableModel", new TableModel());
13 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
14 | if (engine.rootObjects().isEmpty())
15 | return -1;
16 |
17 | return app.exec();
18 | }
19 |
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/tableview/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 | ../common/Background.qml
5 | ../common/BlueBox.qml
6 | ../common/Box.qml
7 | ../common/GreenBox.qml
8 | ../common/RedBox.qml
9 | ../common/Tracer.qml
10 | ../common/YellowBox.qml
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/tableview/tablemodel.cpp:
--------------------------------------------------------------------------------
1 | #include "tablemodel.h"
2 |
3 | TableModel::TableModel()
4 | : QAbstractTableModel()
5 | {
6 |
7 | }
8 |
9 | int TableModel::rowCount(const QModelIndex &) const
10 | {
11 | return 10;
12 | }
13 |
14 | int TableModel::columnCount(const QModelIndex &) const
15 | {
16 | return 10;
17 | }
18 |
19 | QVariant TableModel::data(const QModelIndex &index, int role) const
20 | {
21 | if (role == Qt::DisplayRole)
22 | {
23 | return QString("%1, %2").arg(index.column()).arg(index.row());
24 | }
25 | else
26 | return QVariant();
27 | }
28 |
--------------------------------------------------------------------------------
/docs/ch07-modelview/src/tableview/tablemodel.h:
--------------------------------------------------------------------------------
1 | #ifndef TABLEMODEL_H
2 | #define TABLEMODEL_H
3 |
4 | #include
5 |
6 | class TableModel : public QAbstractTableModel
7 | {
8 | Q_OBJECT
9 |
10 | public:
11 | TableModel();
12 |
13 | int rowCount(const QModelIndex &index = QModelIndex()) const override;
14 | int columnCount(const QModelIndex &index = QModelIndex()) const override;
15 | QVariant data(const QModelIndex &index, int role) const override;
16 | };
17 |
18 | #endif // TABLEMODEL_H
19 |
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/canvas_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/canvas_image.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/canvaspaint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/canvaspaint.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/composite-operations.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/composite-operations.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/convenient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/convenient.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/glowlines.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/glowlines.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/gradient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/gradient.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/html_glowlines.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/html_glowlines.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/line.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/rectangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/rectangle.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/shadow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/shadow.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/spirograph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/spirograph.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/assets/transform.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/assets/transform.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/composition-modes.md:
--------------------------------------------------------------------------------
1 | # Composition Modes
2 |
3 | Composition allows you to draw a shape and blend it with the existing pixels. The canvas supports several composition modes using the `globalCompositeOperation(mode)` operations. For instance:
4 |
5 | * `source-over`
6 | * `source-in`
7 | * `source-out`
8 | * `source-atop`
9 |
10 | Let's begin with a short example demonstrating the exclusive or composition:
11 |
12 | <<< @/docs/ch08-canvas/src/canvas/composition.qml#M1
13 |
14 | The example below will demonstrate all composition modes by iterating over them and combining a rectangle and a circle. You can find the resulting output below the source code.
15 |
16 | <<< @/docs/ch08-canvas/src/canvas/compositeoperation.qml#M1
17 |
18 | 
19 |
--------------------------------------------------------------------------------
/docs/ch08-canvas/convenience-api.md:
--------------------------------------------------------------------------------
1 | # Convenience API
2 |
3 | For operations on rectangles, a convenience API is provided which draws directly and does need a stroke or fill call.
4 |
5 | <<< @/docs/ch08-canvas/src/canvas/convenient.qml#M1
6 |
7 | 
8 |
9 | ::: tip
10 | The stroke area extends half of the line width on both sides of the path. A 4 px lineWidth will draw 2 px outside the path and 2 px inside.
11 | :::
12 |
13 |
--------------------------------------------------------------------------------
/docs/ch08-canvas/images.md:
--------------------------------------------------------------------------------
1 | # Images
2 |
3 | The QML canvas supports image drawing from several sources. To use an image inside the canvas the image needs to be loaded first. We use the `Component.onCompleted` handler to load the image in our example below.
4 |
5 | <<< @/docs/ch08-canvas/src/canvas/image.qml#M1
6 |
7 | The left shows our ball image painted at the top-left position of 10x10. The right image shows the ball with a clipping path applied. Images and any other path can be clipped using another path. The clipping is applied by defining a path and calling the `clip()` function. All following drawing operations will now be clipped by this path. The clipping is disabled again by restoring the previous state or by setting the clip region to the whole canvas.
8 |
9 | 
10 |
--------------------------------------------------------------------------------
/docs/ch08-canvas/src/canvas/assets/ball.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch08-canvas/src/canvas/assets/ball.png
--------------------------------------------------------------------------------
/docs/ch08-canvas/src/canvas/canvas.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.4.1 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 |
7 | /* Include .qml, .js, and image files from current directory and subdirectories */
8 | QmlFiles {
9 | directory: "."
10 | }
11 | JavaScriptFiles {
12 | directory: "."
13 | }
14 | ImageFiles {
15 | directory: "."
16 | }
17 | /* List of plugin directories passed to QML runtime */
18 | // importPaths: [ "../exampleplugin" ]
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch09-shapes/assets/automatic/animation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch09-shapes/assets/automatic/animation.png
--------------------------------------------------------------------------------
/docs/ch09-shapes/assets/automatic/basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch09-shapes/assets/automatic/basic.png
--------------------------------------------------------------------------------
/docs/ch09-shapes/assets/automatic/fillmode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch09-shapes/assets/automatic/fillmode.png
--------------------------------------------------------------------------------
/docs/ch09-shapes/assets/automatic/gradients.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch09-shapes/assets/automatic/gradients.png
--------------------------------------------------------------------------------
/docs/ch09-shapes/assets/automatic/paths.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch09-shapes/assets/automatic/paths.png
--------------------------------------------------------------------------------
/docs/ch09-shapes/shapes.md:
--------------------------------------------------------------------------------
1 | # Shapes
2 |
3 | Until now we've used the ``Rectangle`` element and controls, but for free form shapes, we have to rely on images. Using the Qt Quick Shapes module it is possible to create truly free form shapes. This makes it possible to create visualizations directly from QML in a flexible manner.
4 |
5 | In this chapter we will look at how to use shapes, the various path elements available, how shapes can be filled in different ways, and how to combine shapes with the power of QML to smoothly animate shapes.
6 |
--------------------------------------------------------------------------------
/docs/ch09-shapes/summary.md:
--------------------------------------------------------------------------------
1 | # Summary
2 |
3 | In this chapter we've a look at what the Qt Quick Shapes module has to offer. Using it we can create arbitrary shapes directly in QML, and leverage the property binding system of QML to create dynamic shapes. We've also had a look at the various path segments that can be used to build shapes from elements such as lines, arcs, and various curves. Finally, we've explored the filling options, where gradients can be used to create exciting visual effects from a path.
4 |
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/age.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/age.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/angledirection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/angledirection.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/angledirection2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/angledirection2.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/attractor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/attractor.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/colorvariation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/colorvariation.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/curtain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/curtain.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/curtain_diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/curtain_diagram.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/curve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/curve.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/defaultshader.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/defaultshader.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/directionquest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/directionquest.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/fastblur.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/fastblur.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/firework_final.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/firework_final.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/firework_rockets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/firework_rockets.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/firework_teaser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/firework_teaser.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/friction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/friction.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/geniebending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/geniebending.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/genieeffect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/genieeffect.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/geniehalfside.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/geniehalfside.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/genieminimize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/genieminimize.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/geniescene.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/geniescene.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/geniesimplebending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/geniesimplebending.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/geniesmoothbending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/geniesmoothbending.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/graphicseffectstestbed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/graphicseffectstestbed.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/gravity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/gravity.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/itemparticle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/itemparticle.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/openglpipeline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/openglpipeline.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/particle_directions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/particle_directions.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/particleparameters.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/particleparameters.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/particlesystem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/particlesystem.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/pointdirection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/pointdirection.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/redlense1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/redlense1.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/redlense2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/redlense2.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/redlense3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/redlense3.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/redlense4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/redlense4.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/redlense5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/redlense5.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/rotationvariation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/rotationvariation.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/simpleparticles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/simpleparticles.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/simpleparticles2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/simpleparticles2.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/targetdirection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/targetdirection.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/turbulence.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/turbulence.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/wander.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/wander.png
--------------------------------------------------------------------------------
/docs/ch10-effects/assets/wave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/assets/wave.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/effects/assets/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/effects/assets/background.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/effects/assets/background@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/effects/assets/background@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/effects/assets/bug.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/effects/assets/bug.jpg
--------------------------------------------------------------------------------
/docs/ch10-effects/src/effects/assets/butterfly.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/effects/assets/butterfly.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/effects/assets/coastline.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/effects/assets/coastline.jpg
--------------------------------------------------------------------------------
/docs/ch10-effects/src/effects/assets/fabric.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/effects/assets/fabric.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/effects/assets/fabric@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/effects/assets/fabric@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/effects/assets/lighthouse.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/effects/assets/lighthouse.jpg
--------------------------------------------------------------------------------
/docs/ch10-effects/src/effects/assets/longroad.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/effects/assets/longroad.jpg
--------------------------------------------------------------------------------
/docs/ch10-effects/src/effects/assets/tulips.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/effects/assets/tulips.jpg
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/background medium.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/background medium.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/background medium@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/background medium@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/background.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/background@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/background@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/box_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/box_blue.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/box_blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/box_blue@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/box_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/box_green.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/box_green@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/box_green@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/box_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/box_red.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/box_red@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/box_red@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/circle_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/circle_blue.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/circle_blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/circle_blue@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/circle_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/circle_green.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/circle_green@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/circle_green@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/circle_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/circle_red.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/circle_red@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/circle_red@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/particle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/particle.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/rect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/rect.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/rocket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/rocket.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/rocket@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/rocket@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/star.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/triangle_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/triangle_blue.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/triangle_blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/triangle_blue@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/triangle_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/triangle_green.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/triangle_green@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/triangle_green@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/triangle_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/triangle_red.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/triangle_red@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/triangle_red@2x.png
--------------------------------------------------------------------------------
/docs/ch10-effects/src/particles/assets/ufo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch10-effects/src/particles/assets/ufo.png
--------------------------------------------------------------------------------
/docs/ch11-multimedia/assets/camera-ui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch11-multimedia/assets/camera-ui.png
--------------------------------------------------------------------------------
/docs/ch11-multimedia/multimedia.md:
--------------------------------------------------------------------------------
1 | # Multimedia
2 |
3 | The multimedia elements in the Qt Multimedia makes it possible to playback and record media such as sound, video or pictures. Decoding and encoding are handled through platform-specific backends. For instance, the popular GStreamer framework is used on Linux, WMF is used on Windows, AVFramework on OS X and iOS and the Android multimedia APIs are used on Android.
4 |
5 | The multimedia elements are not a part of the Qt Quick core API. Instead, they are provided through a separate API made available by importing Qt Multimedia as shown below:
6 |
7 | ```qml
8 | import QtMultimedia
9 | ```
10 |
11 |
--------------------------------------------------------------------------------
/docs/ch11-multimedia/src/playback-controls/sample-5s.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch11-multimedia/src/playback-controls/sample-5s.mp4
--------------------------------------------------------------------------------
/docs/ch11-multimedia/src/sound-effects/beep.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch11-multimedia/src/sound-effects/beep.wav
--------------------------------------------------------------------------------
/docs/ch11-multimedia/src/sound-effects/swosh.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch11-multimedia/src/sound-effects/swosh.wav
--------------------------------------------------------------------------------
/docs/ch11-multimedia/summary.md:
--------------------------------------------------------------------------------
1 | # Summary
2 |
3 | The media API provided by Qt provides mechanisms for playing and capturing video and audio. Through the `VideoOutput` element, video streams can be rendered in the user interface. Through the `MediaPlayer` element, most playback can be handled, even though the `SoundEffect` can be used for low-latency sounds. For capturing, or recording camera streams, a combination of `CaptureSession` and `Camera` elements can be used.
4 |
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/asset-first-input.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/asset-first-input.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/asset-second-input.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/asset-second-input.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/balsamui-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/balsamui-1.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/balsamui-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/balsamui-2.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/basicscene.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/basicscene.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/blender-export-collada.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/blender-export-collada.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/blender-export-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/blender-export-menu.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/blender-monkey-with-bones.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/blender-monkey-with-bones.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/blender-monkey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/blender-monkey.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/default-material.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/default-material.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/light_directional.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/light_directional.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/light_point.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/light_point.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/light_spot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/light_spot.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/materials-no-skybox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/materials-no-skybox.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/materials.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/materials.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/meshes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/meshes.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/mix-2d-and-3d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/mix-2d-and-3d.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/monkey.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/monkey.gif
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/principled-material.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/principled-material.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/assets/rotation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/assets/rotation.png
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/animations/blender/monkey-with-bones.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/src/animations/blender/monkey-with-bones.blend
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/animations/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | const QUrl url(u"qrc:/animations/main.qml"_qs);
11 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
12 | &app, [url](QObject *obj, const QUrl &objUrl) {
13 | if (!obj && url == objUrl)
14 | QCoreApplication::exit(-1);
15 | }, Qt::QueuedConnection);
16 | engine.load(url);
17 |
18 | return app.exec();
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/animations/meshes/suzanne.mesh:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/src/animations/meshes/suzanne.mesh
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/basicasset/blender/monkey.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/src/basicasset/blender/monkey.blend
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/basicasset/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | const QUrl url(u"qrc:/basicasset/main.qml"_qs);
11 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
12 | &app, [url](QObject *obj, const QUrl &objUrl) {
13 | if (!obj && url == objUrl)
14 | QCoreApplication::exit(-1);
15 | }, Qt::QueuedConnection);
16 | engine.load(url);
17 |
18 | return app.exec();
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/basicasset/meshes/suzanne.mesh:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/src/basicasset/meshes/suzanne.mesh
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/basicmaterials/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | const QUrl url(u"qrc:/basicmaterials/main.qml"_qs);
11 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
12 | &app, [url](QObject *obj, const QUrl &objUrl) {
13 | if (!obj && url == objUrl)
14 | QCoreApplication::exit(-1);
15 | }, Qt::QueuedConnection);
16 | engine.load(url);
17 |
18 | return app.exec();
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/basicmaterials/maps/skybox.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/src/basicmaterials/maps/skybox.jpg
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/basicmaterials/meshes/suzanne.mesh:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/src/basicmaterials/meshes/suzanne.mesh
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/basicscene/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | const QUrl url(u"qrc:/basicscene/main.qml"_qs);
11 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
12 | &app, [url](QObject *obj, const QUrl &objUrl) {
13 | if (!obj && url == objUrl)
14 | QCoreApplication::exit(-1);
15 | }, Qt::QueuedConnection);
16 | engine.load(url);
17 |
18 | return app.exec();
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/defaultmaterial/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | const QUrl url(u"qrc:/defaultmaterial/main.qml"_qs);
11 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
12 | &app, [url](QObject *obj, const QUrl &objUrl) {
13 | if (!obj && url == objUrl)
14 | QCoreApplication::exit(-1);
15 | }, Qt::QueuedConnection);
16 | engine.load(url);
17 |
18 | return app.exec();
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/defaultmaterial/maps/skybox.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/src/defaultmaterial/maps/skybox.jpg
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/defaultmaterial/meshes/suzanne.mesh:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/src/defaultmaterial/meshes/suzanne.mesh
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/lights/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | const QUrl url(u"qrc:/lights/main.qml"_qs);
11 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
12 | &app, [url](QObject *obj, const QUrl &objUrl) {
13 | if (!obj && url == objUrl)
14 | QCoreApplication::exit(-1);
15 | }, Qt::QueuedConnection);
16 | engine.load(url);
17 |
18 | return app.exec();
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/meshes/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | const QUrl url(u"qrc:/meshes/main.qml"_qs);
11 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
12 | &app, [url](QObject *obj, const QUrl &objUrl) {
13 | if (!obj && url == objUrl)
14 | QCoreApplication::exit(-1);
15 | }, Qt::QueuedConnection);
16 | engine.load(url);
17 |
18 | return app.exec();
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/mix2d3d/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | const QUrl url(u"qrc:/mix2d3d/main.qml"_qs);
11 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
12 | &app, [url](QObject *obj, const QUrl &objUrl) {
13 | if (!obj && url == objUrl)
14 | QCoreApplication::exit(-1);
15 | }, Qt::QueuedConnection);
16 | engine.load(url);
17 |
18 | return app.exec();
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/mix2d3d/meshes/suzanne.mesh:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/src/mix2d3d/meshes/suzanne.mesh
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/principledmaterial/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | const QUrl url(u"qrc:/principledmaterial/main.qml"_qs);
11 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
12 | &app, [url](QObject *obj, const QUrl &objUrl) {
13 | if (!obj && url == objUrl)
14 | QCoreApplication::exit(-1);
15 | }, Qt::QueuedConnection);
16 | engine.load(url);
17 |
18 | return app.exec();
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/principledmaterial/maps/skybox.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/src/principledmaterial/maps/skybox.jpg
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/principledmaterial/meshes/suzanne.mesh:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch12-qtquick3d/src/principledmaterial/meshes/suzanne.mesh
--------------------------------------------------------------------------------
/docs/ch12-qtquick3d/src/translations/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | const QUrl url(u"qrc:/translations/main.qml"_qs);
11 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
12 | &app, [url](QObject *obj, const QUrl &objUrl) {
13 | if (!obj && url == objUrl)
14 | QCoreApplication::exit(-1);
15 | }, Qt::QueuedConnection);
16 | engine.load(url);
17 |
18 | return app.exec();
19 | }
20 |
--------------------------------------------------------------------------------
/docs/ch13-networking/images/oauth-spotify-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch13-networking/images/oauth-spotify-app.png
--------------------------------------------------------------------------------
/docs/ch13-networking/images/oauth-spotify-dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch13-networking/images/oauth-spotify-dashboard.png
--------------------------------------------------------------------------------
/docs/ch13-networking/images/oauth-spotify-result.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch13-networking/images/oauth-spotify-result.png
--------------------------------------------------------------------------------
/docs/ch13-networking/images/ws_client.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch13-networking/images/ws_client.png
--------------------------------------------------------------------------------
/docs/ch13-networking/images/ws_echo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch13-networking/images/ws_echo.png
--------------------------------------------------------------------------------
/docs/ch13-networking/src/http_v1/Button.qml:
--------------------------------------------------------------------------------
1 | // M1>>
2 | // Button.qml
3 |
4 | import QtQuick
5 |
6 | Rectangle {
7 | width: 90
8 | height: 30
9 | color: '#ccc'
10 | border.color: '#666'
11 | property string text
12 | signal clicked()
13 | Text {
14 | anchors.centerIn: parent
15 | text: parent.text
16 | }
17 | MouseArea {
18 | anchors.fill: parent
19 | onClicked: parent.clicked()
20 | }
21 | }
22 | // <>
2 | // main.qml
3 | import QtQuick
4 |
5 | Rectangle {
6 | width: 320
7 | height: 320
8 | color: '#ff0000'
9 | }
10 | // <>
2 | // main2.qml
3 | import QtQuick
4 | import "http://localhost:8080" as Remote
5 |
6 | Rectangle {
7 | width: 320
8 | height: 320
9 | color: '#ff0000'
10 |
11 | Remote.Button {
12 | anchors.centerIn: parent
13 | text: 'Click Me'
14 | onClicked: Qt.quit()
15 | }
16 | }
17 | // <
2 |
3 |
4 | red
5 | #f00
6 |
7 |
8 | green
9 | #0f0
10 |
11 |
12 | blue
13 | #00f
14 |
15 |
16 | cyan
17 | #0ff
18 |
19 |
20 | magenta
21 | #f0f
22 |
23 |
24 |
25 | yellow
26 | #ff0
27 |
28 |
29 | black
30 | #000
31 |
32 |
33 |
--------------------------------------------------------------------------------
/docs/ch13-networking/src/localfiles/localfiles.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.7.0 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: "localfiles.qml"
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch13-networking/src/oauth/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | #include "spotifyapi.h"
5 |
6 | int main(int argc, char *argv[]) {
7 | QGuiApplication app(argc, argv);
8 |
9 | QQmlApplicationEngine engine;
10 | const QUrl url(QStringLiteral("qrc:/Spotify/main.qml"));
11 | QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject *obj, const QUrl &objUrl) {
12 | if (!obj && url == objUrl) {
13 | QCoreApplication::exit(-1);
14 | }
15 | }, Qt::QueuedConnection);
16 |
17 | engine.load(url);
18 |
19 | return app.exec();
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch13-networking/src/requests/http/colors.json:
--------------------------------------------------------------------------------
1 | ]
2 | { "color": "red", "value": "#f00" },
3 | { "color": "green", "value": "#0f0" },
4 | { "color": "blue", "value": "#00f" },
5 | { "color": "cyan", "value": "#0ff" },
6 | { "color": "magenta", "value": "#f0f" },
7 | { "color": "yellow", "value": "#ff0" },
8 | { "color": "black", "value": "#000" }
9 | ]
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/docs/ch13-networking/src/requests/http/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/docs/ch13-networking/src/rest/rest.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: "rest.qml"
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch13-networking/src/restservice/colors.json:
--------------------------------------------------------------------------------
1 | [
2 | { "name": "red", "value": "#f00" },
3 | { "name": "green", "value": "#0f0" },
4 | { "name": "blue", "value": "#00f" },
5 | { "name": "cyan", "value": "#0ff" },
6 | { "name": "magenta", "value": "#f0f" },
7 | { "name": "yellow", "value": "#ff0" }
8 | ]
9 |
--------------------------------------------------------------------------------
/docs/ch13-networking/src/serve-qml-networked-components/remote/qmldir:
--------------------------------------------------------------------------------
1 | # qmldir
2 | Button 1.0 Button.qml
3 |
--------------------------------------------------------------------------------
/docs/ch13-networking/src/ws/ws_client/test.qml:
--------------------------------------------------------------------------------
1 | import QtWebSockets
2 |
3 | WebSocket {
4 | id: socket
5 | }
6 |
--------------------------------------------------------------------------------
/docs/ch13-networking/src/ws/ws_client/ws_client.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: "ws_client.qml"
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch13-networking/src/wsecho/wsecho.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: "wsecho.qml"
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch13-networking/summary.md:
--------------------------------------------------------------------------------
1 | # Summary
2 |
3 | This concludes our chapter about QML networking. Please bear in mind Qt has on the native side a much richer networking API as on the QML side currently. But the idea of the chapter is to push the boundaries of QML networking and how to integrate with cloud-based services.
4 |
--------------------------------------------------------------------------------
/docs/ch14-storage/images/crazy_rect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch14-storage/images/crazy_rect.png
--------------------------------------------------------------------------------
/docs/ch14-storage/src/sqloffline/csvtosql.py:
--------------------------------------------------------------------------------
1 | import csv
2 | import sqlite3
3 |
4 | db = sqlite3.connect('cities.db')
5 | db.execute('''DROP TABLE IF EXISTS cities''')
6 | db.execute('''CREATE TABLE cities (city text, country text, population text, area text, flag text)''')
7 | db.text_factory = str
8 | fp = file("cities.csv")
9 | r = csv.reader(fp, delimiter=';')
10 | for row in r:
11 | db.execute('INSERT INTO cities VALUES (?, ?, ?, ?, ?)', row)
12 | db.commit()
13 | db.close()
14 |
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/assets/automatic/connections.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch15-dynamicqml/assets/automatic/connections.png
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/assets/automatic/empty.dir:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch15-dynamicqml/assets/automatic/empty.dir
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/assets/automatic/loader-analog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch15-dynamicqml/assets/automatic/loader-analog.png
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/assets/automatic/loader-digital.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch15-dynamicqml/assets/automatic/loader-digital.png
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/dynamic-qml.md:
--------------------------------------------------------------------------------
1 | # Dynamic QML
2 |
3 | Until now, we have treated QML as a tool for constructing a static set of scenes and navigating between them. Depending on various states and logic rules, a living and dynamic user interface is constructed. By working with QML and JavaScript in a more dynamic manner, the flexibility and possibilities expand even further. Components can be loaded and instantiated at run-time, elements can be destroyed. Dynamically created user interfaces can be saved to disk and later restored.
4 |
5 |
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/src/dynamic-scene/rocket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch15-dynamicqml/src/dynamic-scene/rocket.png
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/src/dynamic-scene/rocket@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch15-dynamicqml/src/dynamic-scene/rocket@2x.png
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/src/dynamic-scene/ufo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch15-dynamicqml/src/dynamic-scene/ufo.png
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/src/dynamic-scene/ufo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch15-dynamicqml/src/dynamic-scene/ufo@2x.png
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/src/load-component/create-component.js:
--------------------------------------------------------------------------------
1 | // #region M1
2 | var component;
3 |
4 | function createImageObject() {
5 | component = Qt.createComponent("dynamic-image.qml");
6 | if (component.status === Component.Ready || component.status === Component.Error) {
7 | finishCreation();
8 | } else {
9 | component.statusChanged.connect(finishCreation);
10 | }
11 | }
12 |
13 | function finishCreation() {
14 | if (component.status === Component.Ready) {
15 | var image = component.createObject(root, {"x": 100, "y": 100});
16 | if (image === null) {
17 | console.log("Error creating image");
18 | }
19 | } else if (component.status === Component.Error) {
20 | console.log("Error loading component:", component.errorString());
21 | }
22 | }
23 |
24 | // #endregion M1
25 |
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/src/load-component/image1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch15-dynamicqml/src/load-component/image1.png
--------------------------------------------------------------------------------
/docs/ch15-dynamicqml/src/load-component/image2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch15-dynamicqml/src/load-component/image2.png
--------------------------------------------------------------------------------
/docs/ch16-javascript/assets/jsconsole.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch16-javascript/assets/jsconsole.png
--------------------------------------------------------------------------------
/docs/ch16-javascript/src/JSConsole/JSConsole.qmlproject:
--------------------------------------------------------------------------------
1 | /* File generated by Qt Creator, version 2.7.0 */
2 |
3 | import QmlProject 1.1
4 |
5 | Project {
6 | mainFile: "JSConsole.qml"
7 |
8 | /* Include .qml, .js, and image files from current directory and subdirectories */
9 | QmlFiles {
10 | directory: "."
11 | }
12 | JavaScriptFiles {
13 | directory: "."
14 | }
15 | ImageFiles {
16 | directory: "."
17 | }
18 | /* List of plugin directories passed to QML runtime */
19 | // importPaths: [ "../exampleplugin" ]
20 | }
21 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/assets/cityui.graffle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/assets/cityui.graffle
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/images/modelview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/images/modelview.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/images/storecontent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/images/storecontent.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/images/yourapplication.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/images/yourapplication.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | add_subdirectory(coreapp)
4 | add_subdirectory(modelview)
5 | add_subdirectory(qtfoundation)
6 | add_subdirectory(uiapp)
7 | add_subdirectory(valuemodel)
8 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/coreapp/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | project(coreapp VERSION 1.0.0 LANGUAGES CXX)
4 |
5 | set(CMAKE_CXX_STANDARD 17)
6 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
7 |
8 | set(CMAKE_AUTOMOC ON)
9 | set(CMAKE_AUTORCC ON)
10 | set(CMAKE_AUTOUIC ON)
11 |
12 | find_package(Qt6 COMPONENTS Gui REQUIRED)
13 |
14 | add_executable(coreapp
15 | main.cpp
16 | )
17 |
18 | target_link_libraries(coreapp PRIVATE Qt6::Gui)
19 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/modelview/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | project(modelview VERSION 1.0.0 LANGUAGES CXX)
4 |
5 | set(CMAKE_CXX_STANDARD 17)
6 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
7 |
8 | set(CMAKE_AUTOMOC ON)
9 | set(CMAKE_AUTORCC ON)
10 | set(CMAKE_AUTOUIC ON)
11 |
12 | find_package(Qt6 COMPONENTS Quick REQUIRED)
13 | find_package(Qt6 COMPONENTS QuickControls2 REQUIRED)
14 |
15 | add_executable(modelview
16 | main.cpp
17 | dataentrymodel.cpp
18 | dataentrymodel.h
19 | roleentrymodel.cpp
20 | roleentrymodel.h
21 | dynamicentrymodel.cpp
22 | dynamicentrymodel.h
23 | qml.qrc
24 | )
25 |
26 | target_link_libraries(modelview PRIVATE Qt6::Quick Qt6::QuickControls2)
27 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/modelview/dataentrymodel.h:
--------------------------------------------------------------------------------
1 | #ifndef DATAENTRYMODEL_H
2 | #define DATAENTRYMODEL_H
3 |
4 | #include
5 | #include
6 |
7 | class DataEntryModel : public QAbstractListModel
8 | {
9 | Q_OBJECT
10 | public:
11 | explicit DataEntryModel(QObject *parent = 0);
12 | ~DataEntryModel();
13 |
14 | public: // QAbstractItemModel interface
15 | virtual int rowCount(const QModelIndex &parent) const;
16 | virtual QVariant data(const QModelIndex &index, int role) const;
17 | private:
18 | QList m_data;
19 | };
20 |
21 | #endif // DATAENTRYMODEL_H
22 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/modelview/deployment.pri:
--------------------------------------------------------------------------------
1 | android-no-sdk {
2 | target.path = /data/user/qt
3 | export(target.path)
4 | INSTALLS += target
5 | } else:android {
6 | x86 {
7 | target.path = /libs/x86
8 | } else: armeabi-v7a {
9 | target.path = /libs/armeabi-v7a
10 | } else {
11 | target.path = /libs/armeabi
12 | }
13 | export(target.path)
14 | INSTALLS += target
15 | } else:unix {
16 | isEmpty(target.path) {
17 | qnx {
18 | target.path = /tmp/$${TARGET}/bin
19 | } else {
20 | target.path = /opt/$${TARGET}/bin
21 | }
22 | export(target.path)
23 | }
24 | INSTALLS += target
25 | }
26 |
27 | export(INSTALLS)
28 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/modelview/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | #include "dataentrymodel.h"
5 | #include "roleentrymodel.h"
6 | #include "dynamicentrymodel.h"
7 |
8 | int main(int argc, char *argv[])
9 | {
10 | QGuiApplication app(argc, argv);
11 |
12 | // register the type DataEntryModel
13 | // under the url "org.example" in version 1.0
14 | // under the name "DataEntryModel"
15 | qmlRegisterType("org.example", 1, 0, "DataEntryModel");
16 | qmlRegisterType("org.example", 1, 0, "RoleEntryModel");
17 | qmlRegisterType("org.example", 1, 0, "DynamicEntryModel");
18 | QQmlApplicationEngine engine;
19 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
20 |
21 | return app.exec();
22 | }
23 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/modelview/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 | ListDelegate.qml
5 | ListHighlight.qml
6 | Background.qml
7 | remove.png
8 | TextEntry.qml
9 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/modelview/remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/modelview/remove.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/qtfoundation/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | project(foundation_tests VERSION 1.0.0 LANGUAGES CXX)
4 |
5 | set(CMAKE_CXX_STANDARD 17)
6 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
7 |
8 | set(CMAKE_AUTOMOC ON)
9 | set(CMAKE_AUTORCC ON)
10 | set(CMAKE_AUTOUIC ON)
11 |
12 | find_package(Qt6 COMPONENTS Core REQUIRED)
13 | find_package(Qt6 COMPONENTS Test REQUIRED)
14 |
15 | add_executable(foundation_tests
16 | tst_foundation.cpp
17 | )
18 |
19 | target_link_libraries(foundation_tests PRIVATE Qt6::Core Qt6::Test)
20 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/remove.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/uiapp/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | project(uiapp VERSION 1.0.0 LANGUAGES CXX)
4 |
5 | set(CMAKE_CXX_STANDARD 17)
6 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
7 |
8 | set(CMAKE_AUTOMOC ON)
9 | set(CMAKE_AUTORCC ON)
10 | set(CMAKE_AUTOUIC ON)
11 |
12 | find_package(Qt6 COMPONENTS Gui REQUIRED)
13 | find_package(Qt6 COMPONENTS Widgets REQUIRED)
14 |
15 | add_executable(uiapp
16 | main.cpp
17 | mainwindow.cpp
18 | )
19 |
20 | target_link_libraries(uiapp PRIVATE Qt6::Gui Qt6::Widgets)
21 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/uiapp/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "mainwindow.h"
5 |
6 |
7 | int main(int argc, char** argv)
8 | {
9 | QApplication app(argc, argv);
10 |
11 | MainWindow win;
12 | win.resize(320, 240);
13 | win.setVisible(true);
14 |
15 | return app.exec();
16 | }
17 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/uiapp/mainwindow.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | MainWindow::MainWindow(QWidget *parent)
4 | : QMainWindow(parent)
5 | {
6 | m_button = new QPushButton("Store Content", this);
7 |
8 | setCentralWidget(m_button);
9 | connect(m_button, &QPushButton::clicked, this, &MainWindow::storeContent);
10 | }
11 |
12 | MainWindow::~MainWindow()
13 | {
14 |
15 | }
16 |
17 | void MainWindow::storeContent()
18 | {
19 | qDebug() << "... store content";
20 | QString message("Hello World!");
21 | QFile file(QDir::home().absoluteFilePath("out.txt"));
22 | if(!file.open(QIODevice::WriteOnly)) {
23 | qWarning() << "Can not open file with write access";
24 | return;
25 | }
26 | QTextStream stream(&file);
27 | stream << message;
28 | }
29 |
30 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/uiapp/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 |
6 | class MainWindow : public QMainWindow
7 | {
8 | public:
9 | MainWindow(QWidget* parent=0);
10 | ~MainWindow();
11 | public slots:
12 | void storeContent();
13 | private:
14 | QPushButton *m_button;
15 | };
16 |
17 | #endif // MAINWINDOW_H
18 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | project(valuemodel VERSION 1.0.0 LANGUAGES CXX)
4 |
5 | set(CMAKE_CXX_STANDARD 17)
6 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
7 |
8 | set(CMAKE_AUTOMOC ON)
9 | set(CMAKE_AUTORCC ON)
10 | set(CMAKE_AUTOUIC ON)
11 |
12 | find_package(Qt6 COMPONENTS Quick REQUIRED)
13 | find_package(Qt6 COMPONENTS QuickControls2 REQUIRED)
14 |
15 | add_executable(valuemodel
16 | main.cpp
17 | adaptivemodel.cpp
18 | adaptivemodel.h
19 | valuemodel.cpp
20 | valuemodel.h
21 | qml.qrc
22 | )
23 |
24 | target_link_libraries(valuemodel PRIVATE Qt6::Quick Qt6::QuickControls2)
25 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/data/convert.py:
--------------------------------------------------------------------------------
1 | import csv
2 | import json
3 |
4 | fp = file('cities.csv', 'r')
5 | reader = csv.DictReader(fp, delimiter=';')
6 | data = []
7 | for row in reader:
8 | data.append(row)
9 |
10 | s = json.dumps(data, indent=4, sort_keys = True)
11 |
12 | fp = file('cities.json', 'w')
13 | fp.write(s)
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/deployment.pri:
--------------------------------------------------------------------------------
1 | android-no-sdk {
2 | target.path = /data/user/qt
3 | export(target.path)
4 | INSTALLS += target
5 | } else:android {
6 | x86 {
7 | target.path = /libs/x86
8 | } else: armeabi-v7a {
9 | target.path = /libs/armeabi-v7a
10 | } else {
11 | target.path = /libs/armeabi
12 | }
13 | export(target.path)
14 | INSTALLS += target
15 | } else:unix {
16 | isEmpty(target.path) {
17 | qnx {
18 | target.path = /tmp/$${TARGET}/bin
19 | } else {
20 | target.path = /opt/$${TARGET}/bin
21 | }
22 | export(target.path)
23 | }
24 | INSTALLS += target
25 | }
26 |
27 | export(INSTALLS)
28 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Argentina.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Argentina.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Bangladesh.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Bangladesh.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Brazil.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Brazil.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Chile.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Chile.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Colombia.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Colombia.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Cote_d'Ivoire.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Cote_d'Ivoire.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Egypt.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Egypt.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Germany.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Germany.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_India.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_India.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Indonesia.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Indonesia.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Iran.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Iran.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Iraq.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Iraq.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Japan.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Japan.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Kenya.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Kenya.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Mexico.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Mexico.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Myanmar.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Myanmar.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Nigeria.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Nigeria.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_North_Korea.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_North_Korea.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Pakistan.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Pakistan.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Peru.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Peru.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Russia.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Russia.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Saudi_Arabia.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Saudi_Arabia.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Singapore.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Singapore.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_South_Africa.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_South_Africa.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_South_Korea.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_South_Korea.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Spain.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Spain.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Thailand.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Thailand.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Turkey.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Turkey.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Vietnam.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_Vietnam.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_the_Democratic_Republic_of_the_Congo.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_the_Democratic_Republic_of_the_Congo.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_the_People's_Republic_of_China.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_the_People's_Republic_of_China.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_the_United_Kingdom.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_the_United_Kingdom.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_the_United_States.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/flags/22px-Flag_of_the_United_States.svg.png
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | #include "valuemodel.h"
5 | #include "adaptivemodel.h"
6 |
7 | int main(int argc, char *argv[])
8 | {
9 | QGuiApplication app(argc, argv);
10 |
11 | qmlRegisterType("org.example", 1, 0, "AdaptiveModel");
12 | qmlRegisterType("org.example", 1, 0, "ValueModel");
13 |
14 | QQmlApplicationEngine engine;
15 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
16 |
17 | return app.exec();
18 | }
19 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/qml.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 | Background.qml
5 | ListDelegate.qml
6 | ListHighlight.qml
7 | remove.png
8 | TextEntry.qml
9 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/ch17-qtcpp/src/valuemodel/remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch17-qtcpp/src/valuemodel/remove.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/extending-qml.md:
--------------------------------------------------------------------------------
1 | # Extending QML with C++
2 |
3 | Creating application using only QML can sometimes be limiting. The QML run-time is developed using C++, and the run-time environment can be extended, making it possible to make use of the full performance and freedom of the surrounding system.
4 |
5 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/images/cityui_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/images/cityui_empty.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/images/cityui_mock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/images/cityui_mock.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/images/cityui_populated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/images/cityui_populated.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/images/cityui_table.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/images/cityui_table.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | add_subdirectory(CityUI)
4 | add_subdirectory(basicmain)
5 | add_subdirectory(fileio)
6 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | project(CityUI VERSION 1.0.0 LANGUAGES CXX)
4 |
5 | set(CMAKE_CXX_STANDARD 17)
6 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
7 |
8 | set(CMAKE_AUTOMOC ON)
9 | set(CMAKE_AUTORCC ON)
10 | set(CMAKE_AUTOUIC ON)
11 |
12 | find_package(Qt6 COMPONENTS Quick REQUIRED)
13 | find_package(Qt6 COMPONENTS Widgets REQUIRED)
14 |
15 | add_executable(CityUI
16 | main.cpp
17 | qml.qrc
18 | )
19 |
20 | target_link_libraries(CityUI PRIVATE Qt6::Quick Qt6::Widgets)
21 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/LICENSE.md:
--------------------------------------------------------------------------------
1 | # City Data
2 |
3 | Flags and data taken from wikipedia:
4 |
5 | http://en.wikipedia.org/wiki/List_of_cities_proper_by_population
6 |
7 | # Remove Icon
8 |
9 | Created by the author
10 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/deployment.pri:
--------------------------------------------------------------------------------
1 | android-no-sdk {
2 | target.path = /data/user/qt
3 | export(target.path)
4 | INSTALLS += target
5 | } else:android {
6 | x86 {
7 | target.path = /libs/x86
8 | } else: armeabi-v7a {
9 | target.path = /libs/armeabi-v7a
10 | } else {
11 | target.path = /libs/armeabi
12 | }
13 | export(target.path)
14 | INSTALLS += target
15 | } else:unix {
16 | isEmpty(target.path) {
17 | qnx {
18 | target.path = /tmp/$${TARGET}/bin
19 | } else {
20 | target.path = /opt/$${TARGET}/bin
21 | }
22 | export(target.path)
23 | }
24 | INSTALLS += target
25 | }
26 |
27 | export(INSTALLS)
28 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Argentina.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Argentina.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Bangladesh.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Bangladesh.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Brazil.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Brazil.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Chile.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Chile.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Colombia.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Colombia.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Cote_d'Ivoire.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Cote_d'Ivoire.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Egypt.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Egypt.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Germany.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Germany.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_India.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_India.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Indonesia.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Indonesia.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Iran.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Iran.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Iraq.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Iraq.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Japan.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Japan.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Kenya.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Kenya.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Mexico.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Mexico.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Myanmar.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Myanmar.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Nigeria.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Nigeria.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_North_Korea.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_North_Korea.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Pakistan.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Pakistan.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Peru.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Peru.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Russia.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Russia.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Saudi_Arabia.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Saudi_Arabia.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Singapore.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Singapore.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_South_Africa.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_South_Africa.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_South_Korea.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_South_Korea.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Spain.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Spain.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Thailand.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Thailand.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Turkey.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Turkey.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Vietnam.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_Vietnam.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_the_Democratic_Republic_of_the_Congo.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_the_Democratic_Republic_of_the_Congo.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_the_People's_Republic_of_China.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_the_People's_Republic_of_China.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_the_United_Kingdom.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_the_United_Kingdom.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_the_United_States.svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/flags/22px-Flag_of_the_United_States.svg.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication app(argc, argv);
7 |
8 | QQmlApplicationEngine engine;
9 | engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
10 |
11 | return app.exec();
12 | }
13 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/CityUI/remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch18-extensions/src/CityUI/remove.png
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/basicmain/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16.0)
2 |
3 | project(basicmain VERSION 1.0.0 LANGUAGES CXX)
4 |
5 | set(CMAKE_CXX_STANDARD 17)
6 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
7 |
8 | set(CMAKE_AUTOMOC ON)
9 | set(CMAKE_AUTORCC ON)
10 | set(CMAKE_AUTOUIC ON)
11 |
12 | find_package(Qt6 COMPONENTS Quick REQUIRED)
13 |
14 | add_executable(basicmain
15 | main.cpp
16 | basicmain.qrc
17 | )
18 |
19 | target_link_libraries(basicmain PRIVATE Qt6::Quick)
20 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/basicmain/basicmain.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | main.qml
4 |
5 |
6 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/basicmain/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main(int argc, char **argv)
5 | {
6 | QGuiApplication app(argc, argv);
7 | QUrl source(QStringLiteral("qrc:/main.qml"));
8 | QQmlApplicationEngine engine;
9 | engine.load(source);
10 | return app.exec();
11 | }
12 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/basicmain/main.qml:
--------------------------------------------------------------------------------
1 | import QtQuick 2.5
2 | import QtQuick.Window 2.2
3 |
4 | Window {
5 | visible: true
6 | width: 512
7 | height: 300
8 |
9 | Text {
10 | anchors.centerIn: parent
11 | text: "Hello World!"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/fileio/fileio.h:
--------------------------------------------------------------------------------
1 | #ifndef FILEIO_H
2 | #define FILEIO_H
3 |
4 | #include
5 | #include
6 |
7 | class FileIO : public QObject
8 | {
9 | Q_OBJECT
10 | Q_DISABLE_COPY(FileIO)
11 | Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged)
12 | Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged)
13 | QML_ELEMENT
14 | public:
15 | FileIO(QObject *parent = 0);
16 | ~FileIO();
17 |
18 | Q_INVOKABLE void read();
19 | Q_INVOKABLE void write();
20 | QUrl source() const;
21 | QString text() const;
22 | public slots:
23 | void setSource(QUrl source);
24 | void setText(QString text);
25 | signals:
26 | void sourceChanged(QUrl arg);
27 | void textChanged(QString arg);
28 | private:
29 | QUrl m_source;
30 | QString m_text;
31 | };
32 |
33 | #endif // FILEIO_H
34 |
35 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/fileio/fileio_plugin.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | class FileioPlugin : public QQmlEngineExtensionPlugin
4 | {
5 | Q_OBJECT
6 | Q_PLUGIN_METADATA(IID QQmlEngineExtensionInterface_iid)
7 | };
8 |
9 | #include "fileio_plugin.moc"
10 |
--------------------------------------------------------------------------------
/docs/ch18-extensions/src/fileio/qmldir:
--------------------------------------------------------------------------------
1 | module org.example.io
2 | plugin fileio
3 |
4 |
--------------------------------------------------------------------------------
/docs/ch19-python/assets/cpu-load-model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch19-python/assets/cpu-load-model.png
--------------------------------------------------------------------------------
/docs/ch19-python/assets/pyside2-hello-world.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch19-python/assets/pyside2-hello-world.png
--------------------------------------------------------------------------------
/docs/ch19-python/assets/pyside6-hello-world.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch19-python/assets/pyside6-hello-world.png
--------------------------------------------------------------------------------
/docs/ch19-python/assets/qml-hello-world.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch19-python/assets/qml-hello-world.png
--------------------------------------------------------------------------------
/docs/ch19-python/limitations.md:
--------------------------------------------------------------------------------
1 | # Limitations
2 |
3 | At the moment, there are some things that are not easily available. One of them is that you cannot easily create QML plugins using Python. Instead you need to import the Python QML “modules” into your Python program and then use qmlRegisterType to make it possible to import them from QML.
4 |
5 |
--------------------------------------------------------------------------------
/docs/ch19-python/qt-python.md:
--------------------------------------------------------------------------------
1 | # Qt for Python
2 |
3 | This chapter describes the PySide6 module from the Qt for Python project. You will learn how to install it and how to leverage QML together with Python.
4 |
5 |
--------------------------------------------------------------------------------
/docs/ch19-python/summary.md:
--------------------------------------------------------------------------------
1 | # Summary
2 |
3 | In this chapter we have looked at the PySide6 module from the Qt for Python project. After a brief look at installation, we focused on how Qt concepts are used from Python. This included slots, signals and properties. We also looked at a basic list model and how to expose both Python objects and classes from Python to QML.
4 |
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/counter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/counter.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/create-project-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/create-project-1.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/create-project-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/create-project-2.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/create-project-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/create-project-3.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/devices.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/devices.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/hello-world-orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/hello-world-orange.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/hello-world-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/hello-world-red.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/installer-mcu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/installer-mcu.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/kits.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/kits.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/model-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/model-1.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/model-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/model-2.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/model-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/model-3.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/qtcreator-qml-import-path.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/qtcreator-qml-import-path.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/qtcreator-with-project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/qtcreator-with-project.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/assets/qul-hello-world.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/ch20-qtformcu/assets/qul-hello-world.png
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/qtformcu.md:
--------------------------------------------------------------------------------
1 | # Qt for MCUs
2 |
3 | ::: tip Notice
4 | Qt for MCUs is not a part of the open source Qt distribution, but as a commercial add-on.
5 | :::
6 |
7 | Qt for MCUs is a Qt version takes Qt for platforms that are too small to run Linux. Instead, Qt for MCUs can run on top of FreeRTOS, or even on the bare metal, i.e. without any operating system involved. As this book focuses on QML, we will have a deeper look at Qt Quick Ultralite and compare it to the full-size Qt offering.
8 |
9 | Using Qt for MCUs you can build beautiful, fluid graphical user interfaces for your micro controller-based systems. Qt for MCUs is focused on the graphical front-end, so instead of the traditional Qt modules, common C++ types are used. This means that some interfaces change. Most notably how models are exposed to QML. In this chapter we will dive into this, and more.
10 |
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/src/cppintegration/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required (VERSION 3.15)
2 |
3 | project(cppintegration VERSION 0.0.1 LANGUAGES C CXX ASM)
4 |
5 | find_package(Qul)
6 |
7 | if(Qul_VERSION VERSION_GREATER_EQUAL "1.7")
8 | qul_add_target(cppintegration counter.cpp)
9 | else()
10 | add_executable(cppintegration counter.cpp)
11 | target_link_libraries(cppintegration
12 | Qul::QuickUltralite
13 | Qul::QuickUltralitePlatform)
14 | endif()
15 |
16 | #region generate_interfaces
17 | qul_target_generate_interfaces(cppintegration counter.h)
18 | #endregion generate_interfaces
19 | qul_target_qml_sources(cppintegration cppintegration.qml PlainButton.qml)
20 |
21 | app_target_setup_os(cppintegration)
22 | app_target_default_main(cppintegration cppintegration)
23 |
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/src/cppmodel/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required (VERSION 3.15)
2 |
3 | project(cppmodel VERSION 0.0.1 LANGUAGES C CXX ASM)
4 |
5 | find_package(Qul)
6 |
7 | if(Qul_VERSION VERSION_GREATER_EQUAL "1.7")
8 | qul_add_target(cppmodel citymodel.cpp)
9 | else()
10 | add_executable(cppmodel citymodel.cpp)
11 | target_link_libraries(cppmodel
12 | Qul::QuickUltralite
13 | Qul::QuickUltralitePlatform)
14 | endif()
15 |
16 | qul_target_generate_interfaces(cppmodel citymodel.h)
17 | qul_target_qml_sources(cppmodel cppmodel.qml)
18 |
19 | app_target_setup_os(cppmodel)
20 |
21 | if(Qul_VERSION VERSION_GREATER_EQUAL "2.0")
22 | app_target_default_entrypoint(cppmodel cppmodel)
23 | else()
24 | app_target_default_main(cppmodel cppmodel)
25 | endif()
26 |
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/src/helloworld/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required (VERSION 3.15)
2 |
3 | project(helloworld VERSION 0.0.1 LANGUAGES C CXX ASM)
4 |
5 | find_package(Qul)
6 |
7 | if(Qul_VERSION VERSION_GREATER_EQUAL "1.7")
8 | qul_add_target(helloworld)
9 | else()
10 | add_executable(helloworld)
11 | target_link_libraries(helloworld
12 | Qul::QuickUltralite
13 | Qul::QuickUltralitePlatform)
14 | endif()
15 |
16 | qul_target_qml_sources(helloworld helloworld.qml)
17 |
18 | app_target_setup_os(helloworld)
19 | app_target_default_main(helloworld helloworld)
20 |
--------------------------------------------------------------------------------
/docs/ch20-qtformcu/summary.md:
--------------------------------------------------------------------------------
1 | # Summary
2 |
3 | In this chapter we've scratched the surface of Qt for MCUs and Qt Quick Ultralite. These technologies bring Qt to much smaller platforms and make it truly embeddable. Through-out this chapter, we've used the virtual desktop target, which allows for quick prototyping. Targeting a specific board is just as easy, but requires access to hardware and the associated tools.
4 |
5 | Key take-aways from using Qt Quick Ultralite is that there are fewer built in elements, and that some APIs are slightly more restricted. But given the intended target systems, this is usually not a hindrance. Qt Quick Ultralite also turns QML into a compiled language, which actually is nice. It allows you to catch more errors during compile time, instead of having to test more during run time.
6 |
--------------------------------------------------------------------------------
/docs/preface/assets/clorquet.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/preface/assets/clorquet.jpg
--------------------------------------------------------------------------------
/docs/preface/assets/jryannel.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/preface/assets/jryannel.jpg
--------------------------------------------------------------------------------
/docs/preface/assets/jthelin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/qmlbook/qt6book/289f7d242b87503b21d0c9ccecde2504365d6fde/docs/preface/assets/jthelin.jpg
--------------------------------------------------------------------------------
/scripts/build-examples.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | if ! test -d _examples; then
6 | mkdir _examples
7 | fi
8 |
9 | cd _examples
10 | cmake ..
11 | make
12 | cd ..
13 |
--------------------------------------------------------------------------------
/scripts/lint-examples.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #
4 | # Script to run qmllint on all example qml files
5 | #
6 |
7 | for f in $(find docs/ -name *.qml)
8 | do
9 | qmllint $f
10 | done
11 |
--------------------------------------------------------------------------------
/scripts/make-screenshots.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | SCREENSHOTS=$(find -name screenshots.qml)
6 |
7 | for SS in $SCREENSHOTS
8 | do
9 | SSD=$(dirname $SS)
10 | pushd $SSD > /dev/null
11 | shorty screenshots.qml
12 | popd > /dev/null
13 | done
14 |
--------------------------------------------------------------------------------