Grafische Benutzeroberfläche
Wir verwenden ein JSON-Schema, um eine benutzerfreundliche GUI zu erstellen und die Eingaben zu validieren, damit keine falschen oder unerwünschten Daten von einer Python-Datei übernommen werden. Jede Python-Datei benötigt ein GUI-Schema.
Tip
Wenn du noch nie JSON-Syntax geschrieben hast, empfehlen wir eine kurze Einführung. Hier und/oder hier (fachlich)
UI-Elemente
Jedes UI-Element hat ein bestimmtes Schema. Das Schema ermöglicht es dir, dem Element eine Bezeichnung zu geben und die Benutzereingabe zu überprüfen, indem du z. B. eine Mindest- und eine Höchstzahl für ein Element vom Typ Zahl angibst. Eine Mindestanzahl von Farben, einen Standardwert (erforderlich!) oder sogar das Ein-/Ausblenden eines Elements basierend auf dem Wert eines anderen Elements.
Kontrollkästchen
Ein Kontrollkästchen anzeigen.
"swirl_enabled" :{
"type" : "boolean",
"title" : "edt_eff_swirl_enabled",
"default" : false
}
Die Option swirl_enabled
ist vom Typ boolean mit dem Titel edt_eff_swirl_enabled
(Titel werden übersetzt). Das default
setzt die Option auf den definierten Standardwert, zwingend erforderlich!
String
Ein Eingabefeld, das alle möglichen Zeichen akzeptiert.
"swirl_name" :{
"type" : "string",
"title" : "edt_eff_swirl_name",
"default" : "A cool placeholder name"
}
Die Option swirl_name
wird vom Typ String mit dem Titel edt_eff_swirl_name
(Titel werden übersetzt) sein. Das default
setzt die Option auf den definierten Standardwert, zwingend erforderlich!
Optional
- Füge
"minLength" : 5
hinzu, um eine Mindestlänge von 5 zu erzwingen.Achte darauf, dass der Standardwert übereinstimmt. - Füge
"maxLength" : 9
hinzu, um eine maximale Länge von 9 zu erzwingen. Achte darauf, dass der Standardwert übereinstimmt. - Füge
"enum" : ["Amazing1", "Amazing", "Amazing3"]
hinzu, um die Eingabe als Auswahlfeld darzustellen, in dem der Benutzer eine der definierten Optionen auswählen kann.
Integer
Ein Eingabefeld für Integer
"swirl_count" :{
"type" : "integer",
"title" : "edt_eff_swirl_count",
"default" : 5
}
Die Option swirl_count
wird vom Typ Integer mit dem Titel edt_eff_swirl_count
(Titel werden übersetzt) sein. Das default
setzt die Option auf den definierten Standardwert, zwingend erforderlich!
Optional
- Füge
"minimum" : 5
hinzu, um einen Mindestwert zu erzwingen, falls er nicht niedriger sein sollte. - Füge
"maximum" : 9
hinzu, um einen Maximalwert zu erzwingen, falls er nicht höher sein sollte. - Füge
"step" : 2,
hinzu, um eine alternative Werteschrittweite zu definieren. Wenn nicht angegeben, ist der Standardwert1
. Dies verhindert keine Werte, die "außerhalb" der Stufe liegen, es ist eher eine Hilfe, wenn du Auf/Ab-Tasten verwendest und höhere oder kleinere Stufen gewünscht sind.
Zahlen
Ein Eingabefeld für Zahlen (Float)
"swirl_spread" :
{
"type" : "number",
"title" : "edt_eff_swirl_spread",
"default" : 7.0
}
Die Option swirl_spread
ist vom Typ Zahl (float) mit dem Titel edt_eff_swirl_spread
(Titel werden übersetzt). Das default
setzt die Option auf den definierten Standardwert, erforderlich!
Optional
- Füge
"minimum" : 5.0
hinzu, um einen Mindestwert zu erzwingen, falls er nicht niedriger sein sollte - Füge
"maximum" : 9.6
hinzu, um einen Maximalwert zu erzwingen, falls er nicht höher sein sollte - Füge
"step" : 0.1,
hinzu, um eine alternative Werteschrittweite zu definieren. Wenn nicht angegeben, ist der Standardwert1.0
. Dies verhindert keine Werte, die "außerhalb" der Stufe liegen, es ist eher eine Hilfe, wenn Sie die Auf-/Ab-Tasten verwenden und höhere oder kleinere Stufen gewünscht sind.
Select
Erzeugt ein Auswahlelement, in dem man einen der enum
-Einträge auswählen kann. Der Standardwert ist erforderlich!
"candles": {
"type": "string",
"title":"edt_eff_whichleds",
"enum" : ["all","all-together","list"],
"default" : "all"
}
Array
Erzeugt ein Array Eingabefeld mit den angegebenen Eigenschaften unter items
. Du kannst alle Arten von Optionen darin verschachteln.
"countries": {
"type": "array",
"uniqueItems": true,
"title" : "edt_eff_countries",
"items": {
"type": "string",
"title": "edt_eff_country"
},
"default":["de","at"]
}
Die Option countries
ist vom Typ Array.(in Python ist es ein Python-Tupel) (dargestellt als Array, in dem man Eigenschaften hinzufügen oder entfernen kann, in diesem Fall ein String-Eingabefeld mit dem Titel edt_eff_country"
) mit dem Titel edt_eff_swirl_countries
(Die Titel werden übersetzt). Das default
setzt die Option auf den definierten Standardwert. Zwingend Erforderlich!
Optional
- Füge
"uniqueItems": true
hinzu, wenn du sicherstellen willst, dass jedes Element einzigartig ist. - Füge
"minItems": 2
hinzu, um eine Mindestanzahl von Elementen im Array zu erzwingen. - Füge
"maxItems": 6
, um eine maximale Anzahl von Elementen für das Array zu erzwingen.
Array - Multiselect
Erstellt eine Auswahl, bei der mehrere Elemente aus enum
ausgewählt werden können. Der Standardwert ist nicht erforderlich.
"countries": {
"type": "array",
"title" : "edt_eff_countries",
"uniqueItems": true,
"items": {
"type": "string",
"enum": ["de","at","fr","be","it","es","bg","ee","dk","fi","hu","ie","lv","lt","lu","mt","nl","pl","pt","ro","sl","se","ch"]
},
"default":["de","at"],
"propertyOrder" : 1
},
Array - RGB Farbauswähler
Erzeugt einen RGB-Farbauswähler.
"color" : {
"type": "array",
"title" : "edt_eff_color",
"format":"colorpicker",
"default" : [255,0,0],
"items":{
"type":"integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3
}
Die Option color
ist vom Typ Array (dargestellt als RGB Farbauswahl) mit dem Titel edt_eff_color
(Titel werden übersetzt). Dieser Farbwähler wird auf anfängliches Rot gesetzt.
Array - Farbauswähler RGBA
Erzeugt einen RGBA-Farbauswähler. Denkt zweimal nach, bevor ihr einen RGBA-Farbauswähler bereitstellt, der Anwendungsfall ist begrenzt.
"color" : {
"type": "array",
"title" : "edt_eff_color",
"format":"colorpickerRGBA",
"default" : [255,0,0,0.5],
"minItems": 4,
"maxItems": 4
}
Die Option color
ist vom Typ Array (dargestellt als RGBA Farbauswähler) mit dem Titel edt_eff_color
(Titel werden übersetzt). Dieser Farbauswähler wird auf Rot mit 50% Alpha initial gesetzt. Erforderlich, um eine Standardfarbe hinzuzufügen.
Mehr Verschönerung
Um die Benutzeroberfläche besser zu organisieren und zu verschönern, stellen wir eine Reihe von zusätzlichen Schlüsselwörtern zur Verfügung.
Abhängigkeiten
Ausblenden/Einblenden einer bestimmten Option basierend auf dem Wert einer anderen Option
"enable-second": {
"type": "boolean",
"title":"edt_eff_enableSecondSwirl",
"default": false,
"propertyOrder" : 1
},
"random-center2": {
"type": "boolean",
"title":"edt_eff_randomCenter",
"default": false,
"options": {
"dependencies": {
"enable-second": true
}
}
}
Die Option random-center2
wird NICHT angezeigt, bis die Option enable-second
auf true gesetzt ist. Dies funktioniert auch mit Zahlen, Integern und Strings.
Reihenfolge
Da jede Option ein Objekt ist und die Sortierreihenfolge bei Objekten zufällig ist, musst du selbst eine Reihenfolge festlegen. Füge einen Schlüssel propertyOrder
hinzu.
"enable-second": {
"type": "boolean",
"title":"edt_eff_enableSecondSwirl",
"default": false,
"propertyOrder" : 1
},
"random-center2": {
"type": "boolean",
"title":"edt_eff_randomCenter",
"default": false,
"propertyOrder" : 2
}
Die Option enable-second
steht an erster, random-center2
an zweiter Stelle.
Feld-Anhänge
Du willst eine bestimmte Einheit am Ende eines Feldes wie "s", "ms" oder "Prozent"? Füge einfach ein append
mit der gewünschten Einheit hinzu.
"interval": {
"type": "integer",
"title":"edt_eff_interval",
"default": 5,
"append" : "edt_append_s",
"propertyOrder" : 1
}
Dadurch wird ein "s" für Sekunden in das Eingabefeld eingefügt. Bitte beachte, dass es auch übersetzt wird, überprüfe also die Übersetzungsdatei, ob die Einheit bereits vorhanden ist. Füge bei Bedarf eine neue hinzu.
Glättungssteuerung (nur für Effekte)
Da v2-Effekte nicht mehr geglättet werden, ist es möglich, die Glättung bei Bedarf zu aktivieren und zu manipulieren. Füge dem Schema Folgendes hinzu.
"smoothing-custom-settings":{
"type":"boolean",
"title":"edt_eff_smooth_custom",
"default":false,
"propertyOrder":1
},
"smoothing-time_ms":{
"type":"integer",
"title":"edt_eff_smooth_time_ms",
"minimum":25,
"maximum":600,
"default":200,
"append":"edt_append_ms",
"options":{
"dependencies":{
"smoothing-custom-settings":true
}
},
"propertyOrder":2
},
"smoothing-updateFrequency":{
"type":"number",
"title":"edt_eff_smooth_updateFrequency",
"minimum":1.0,
"maximum":100.0,
"default":25.0,
"append":"edt_append_hz",
"options":{
"dependencies":{
"smoothing-custom-settings":true
}
},
"propertyOrder":3
}
Übersetzung
**nur für Effekte - Plugins **
Um die Effekteinstellungen in eine Sprache zu übersetzen, verwenden wir Platzhalter, die während der Laufzeit in die Zielsprache übersetzt werden. Normalerweise sieht das so aus edt_eff_smooth
Verfügbare Phrasen beginnen mit edt_eff_
sie werden für alle Effekte gemeinsam verwendet, um Duplikate zu vermeiden. Bitte suche in der Übersetzungsdatei nach einer passenden Übersetzung. Wenn du keine passende Phrase findest, füge sie bitte hinzu.