13.1.13.4.2. Värdekontroller#
Detta är kontrollerna som håller en inställning. Var och en bär ett value, och Spara skriver det redigerade value tillbaka in i kontrollen. Tabellen nedan är den snabba mappningen från kontroll till den JSON-typ den lagrar; avsnitten som följer dokumenterar varje nyckel.
Kontroll | Sparar |
|---|---|
checkbox | boolean, eller heltal |
combobox | det valda värdet, eller dess index |
radio | det valda värdet, eller dess index |
spinbox | heltal |
doublespinbox | tal (flyttal) |
slider | heltal |
lineedit | sträng |
Alla värdekontroller accepterar också de gemensamma nycklarna (name, label, tooltip, enabled); se översikten. label visas bredvid kontrollen (på själva rutan för en checkbox).
13.1.13.4.2.1. checkbox#
En på/av-brytare. Valfritt tretillstånd, för inställningar som har ett ”ej inställt” mellanläge.
{ "type": "checkbox", "name": "draw_overlays", "label": "Draw Overlays", "value": true }
Argument:
label (string) – texten som visas bredvid rutan. Endast oformaterad text (till skillnad från de andra kontrollerna, vars etiketter tar formaterad text).
tristate (boolean, standard
false) – tillåt ett tredje, delvis ikryssat tillstånd.value – det initiala tillståndet. Två tillstånd: en boolean. Tretillstånd:
0(av),1(delvis), eller2(på).
Sparar: en boolean för en tvåtillståndsruta; ett heltal 0, 1, eller 2 för en tretillståndsruta.
13.1.13.4.2.2. combobox#
En rullgardinsmeny med val.
{
"type": "combobox",
"name": "resolution",
"label": "Resolution",
"options": ["QQVGA", "QVGA", "VGA"],
"values": ["qqvga", "qvga", "vga"],
"value": "qvga"
}
Argument:
options (array av strängar) – objekten som visas i menyn.
values (array) – en valfri parallell array av värdena som ska sparas, ett per option. Med values visar menyn
options[i]men spararvalues[i]– så användaren ser ”QVGA” medan filen lagrar"qvga". Posterna kan vara vilken JSON-typ som helst. Utan values sparar kontrollen istället det valda objektets index.value – det initiala valet. Med values, posten som är lika med ett av values. Utan values, indexet för objektet som ska väljas (standard
0).
Sparar: den matchande values-posten (vilken typ som helst) när values anges; annars det valda indexet (heltal).
13.1.13.4.2.3. radio#
En uppsättning radioknappar – ett val synligt åt gången, som en combobox men utlagd i sin helhet.
{
"type": "radio",
"name": "mode",
"label": "Mode",
"options": ["Idle", "Track", "Record"],
"values": ["idle", "track", "record"],
"value": "idle",
"orientation": "horizontal"
}
Argument:
options (array av strängar) – en knapp per post.
values (array) – de valfria värdena att spara, ett per option, precis som för combobox. Utan den sparar kontrollen det valda indexet.
value – det initiala valet, matchat mot values eller använt som ett index, som för combobox.
orientation (string, standard
"vertical") –"horizontal"för att lägga knapparna i en rad, annars en kolumn.
Sparar: den matchande values-posten (vilken typ som helst), eller det valda indexet.
13.1.13.4.2.4. spinbox#
En talruta för heltal, med upp/ned-pilar.
{
"type": "spinbox",
"name": "server_port",
"label": "Port",
"value": 8080,
"min": 0,
"max": 65535,
"group_separator": true
}
Argument:
value (integer, standard
0) – det initiala talet.min (integer, standard
0eller value, vilket som är minst) – det lägsta tillåtna värdet.max (integer, standard
100eller value, vilket som är störst) – det högsta tillåtna värdet.step (integer, standard
1) – upp/ned-steget.prefix (string) – text som visas före talet, t.ex.
"0x".suffix (string) – text som visas efter talet, t.ex. en enhet som
" px".base (integer, standard
10) – visningsbasen; sätt till16för att visa och redigera talet i hexadecimalt.group_separator (boolean, standard
false) – gruppera siffrorna med tusentalsavgränsare.special_value_text (string) – text att visa istället för talet när det ligger på min, t.ex. visa ”Off” vid
0.
Sparar: ett heltal.
13.1.13.4.2.5. doublespinbox#
En talruta för decimaltal.
{
"type": "doublespinbox",
"name": "sensitivity",
"label": "Sensitivity",
"value": 50.0,
"min": 0,
"max": 100,
"step": 0.5,
"decimals": 1,
"suffix": " %"
}
Argument:
value (number, standard
0) – det initiala talet.min (number, standard
0eller value, vilket som är minst) – det lägsta tillåtna värdet.max (number, standard
100eller value, vilket som är störst) – det högsta tillåtna värdet.decimals (integer, standard
2) – hur många siffror som ska visas efter decimaltecknet.step (number, standard
1.0) – upp/ned-steget.prefix (string) – text som visas före talet, t.ex.
"max ".suffix (string) – text som visas efter talet, t.ex. en enhet som
" %".group_separator (boolean, standard
false) – tusentalsavgränsare.special_value_text (string) – text att visa när talet ligger på min.
Sparar: ett tal (flyttal).
13.1.13.4.2.6. slider#
Ett horisontellt skjutreglage med en direkt numerisk avläsning bredvid.
{
"type": "slider",
"name": "brightness",
"label": "Brightness",
"value": 50,
"min": 0,
"max": 100,
"step": 1,
"suffix": " %",
"ticks": 25
}
Argument:
value (integer, standard
0) – den initiala positionen.min (integer, standard
0eller value, vilket som är minst) – den låga änden av banan.max (integer, standard
100eller value, vilket som är störst) – den höga änden av banan.step (integer, standard
1) – steget för tangentbord och dragning; dragningar fäster vid närmaste multipel.prefix (string) – text som visas före den numeriska avläsningen bredvid skjutreglaget, t.ex.
"x".suffix (string) – text som visas efter avläsningen, t.ex.
" %".ticks (integer) – avståndet mellan gradmarkeringar ritade under banan.
Sparar: ett heltal.
13.1.13.4.2.7. lineedit#
Ett enradigt textfält, för namn, lösenord, adresser, och liknande.
{
"type": "lineedit",
"name": "hostname",
"label": "Hostname",
"value": "openmv-cam",
"placeholder": "letters, digits, dashes",
"regex": "[A-Za-z0-9-]+",
"clear_button": true
}
Argument:
value (string, standard
"") – den initiala texten.placeholder (string) – grå ledtext som visas medan fältet är tomt.
max_length (integer) – det mesta antalet tecken fältet accepterar.
mask (string) – en inmatningsmask som fastställer layouten för vad som kan skrivas, t.ex.
"000.000.000.000;_"för en IPv4-adress. Se Input masks nedan.regex (string) – ett reguljärt uttryck som hela inmatningen måste matcha. Se Regular expressions nedan.
clear_button (boolean, standard
false) – visa en liten rensningsknapp inuti fältet.password (boolean, standard
false) – dölj texten som punkter och lägg till en ögonknapp för att visa den.
Sparar: en sträng.
En mask och en regex begränsar båda vad fältet accepterar, från motsatta håll – en mask fastställer textens layout, en regex begränsar dess innehåll. Ett fält med någon av dem är den enda kontrollen som kan blockera en Spara: om dess text är ofullständig eller inte matchar listar redigeraren fältet efter dess label och vägrar spara tills det åtgärdats eller rensats. Använd högst en av de två på ett fält.
13.1.13.4.2.7.1. Inmatningsmasker#
En mask fastställer fältet tecken för tecken: avgränsare ritas in åt användaren, som bara fyller i det tomma. Varje masktecken står för en inmatningsposition:
9– en obligatorisk siffra;0– en valfri siffra.A/a– en obligatorisk / valfri bokstav.N/n– en obligatorisk / valfri bokstav eller siffra.X/x– ett obligatoriskt / valfritt tecken av vilket slag som helst.H/h– en obligatorisk / valfri hexadecimal siffra.>/<– gör bokstäverna som följer till versaler / gemener;!stoppar omvandlingen.
Alla andra tecken – . i 000.000.000.000, ett - i ett serienummer – är en bokstavlig avgränsare: den placeras automatiskt och hoppas över medan användaren skriver. För att använda ett masktecken bokstavligen, sätt ett omvänt snedstreck framför det.
Ett ; nära slutet ställer in platshållaren som visas för ofyllda positioner: "000.000.000.000;_" visar ett tomt fält som ___.___.___.___. Utelämna det och de tomma platserna blir mellanslag. Så länge någon obligatorisk position fortfarande är tom är inmatningen ofullständig, vilket blockerar Spara.
13.1.13.4.2.7.2. Reguljära uttryck#
En regex kontrollerar innehåll snarare än layout, och passar bättre när regeln är ”dessa tecken, detta mönster” snarare än ett fast fält. Hela inmatningen måste matcha – uttrycket är förankrat i båda ändar, så "[A-Za-z0-9-]+" betyder endast bokstäver, siffror, och bindestreck från början till slut, inte bara ”innehåller ett”.
Kontrollen körs vid varje tangenttryckning. Ett tecken accepteras så länge texten fortfarande skulle kunna växa till en fullständig matchning, och avvisas i det ögonblick den inte kunde det, så användaren kan aldrig skriva sig fram till något ogiltigt. Fältet räknas som giltigt – och Spara tillåts – först när hela uttrycket matchar; en partiell inmatning på väg dit stannar kvar men blockerar Spara tills den är fullständig.
För att bygga och testa ett mönster förklarar regex101.com varje del medan du skriver – ställ in dess flavor till PCRE2, syntaxen redigeraren använder.