From 1dbacfecb241f5eb6b512f78b0b243615b971c1a Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Thu, 17 Jul 2025 21:35:57 +0200 Subject: read more about QML language --- Quickshell.md | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) (limited to 'Quickshell.md') diff --git a/Quickshell.md b/Quickshell.md index a0401f4..607441f 100644 --- a/Quickshell.md +++ b/Quickshell.md @@ -30,6 +30,29 @@ A reusable tree of objects. To prevent many of the same processes when we reuse a component many times use `Scope` to move them outside of the reused component. We can use a [Property Definition](https://quickshell.org/docs/configuration/qml-overview/#property-definitions) on the parent scope to communicate between components in different scopes but in the same parent scope. Properties are reactive. +# Objects +Properties + +`[required] [readonly] [default] property [: binding]` + +`id` is a special property that can be used to reference an object throughout +the entire current file. Has to be lowercase. + + +Functions + +``` +function ([: ][, ...])[: returntype] { + // multiline expression (note that `return` is required) +} +``` + +Can be invoked in expressions, reactivity is carried through -- so +if the argument value changes all expressions are re-evaluated. + +Lambas `() => ...` + + # Multiple files shell.qml is the root. If a filename starts with a capital letter it can be referenced. E.g Bar.qml ``` @@ -46,4 +69,28 @@ Has only one instance that is accessible from every scope. For example the date Set `pragma Singleton` at the top of the file ( before imports ). and Use `Singleton` type. -[Clock formatting](https://doc.qt.io/qt-6/qml-qtqml-qt.html#formatDateTime-method) \ No newline at end of file +[Clock formatting](https://doc.qt.io/qt-6/qml-qtqml-qt.html#formatDateTime-method) + + +# Signals +Event emitter. +Same rules as properties and function. + +`signal (: [, ...])` + +Objects have implict `on` (note capital S) for each signal defined. + +Connections object can be used to access difficult to reach signal handlers, +such as those from Singletons. + +`Connections { target: id; function onClicked() # example target: button }` +Does that somehow override the onClicked function of the target?? + + +All properties have `propertynameChanged` handler, powering the reactivity. + + +# Attached objects +Every object has `Component` attached, used to run stuff when an Object finishes +initializes using `Component.onCompleted`. + -- cgit v1.2.3