Vlastní layouty widgetů

Uživatelský avatar
pstasek
Příspěvky: 257
Registrován: pát 26. dub 2019 21:21:55
Bydliště: Trutnov

Vlastní layouty widgetů

Příspěvek od pstasek »

Od verze 1.5.10 je možné nadefinovat pomocí Lua skriptu vlastní layouty pro widgety na hlavní obrazovce.
image.png
layout.zip
(610 bajtů) Staženo 233 x
soubor scripts/layout/main.lua může obsahovat i více layoutů, příklad použití zde:

Kód: Vybrat vše

local function init()
system.registerLayout(
	{	key="al1", 
		widgets={
			{x=37, y=100, w=300, h=280},	--Image
			{x=350, y=100, w=200, h=86},	--ValueR1C1
			{x=563, y=100, w=200, h=86},	--ValueR1C2
			{x=350, y=197, w=200, h=86},	--ValueR2C1
			{x=563, y=197, w=200, h=86},	--ValueR2C2
			{x=350, y=294, w=200, h=86},	--ValueR3C1
			{x=563, y=294, w=200, h=86}	--ValueR3C2
			
		}, 
		trims={
			{x=60, y=380, w=300, h=37}, 	--T4
			{x=3, y=110, w=36, h=274}, 	--T3
			{x=761, y=110, w=36, h=274}, 	--T2
			{x=480, y=380, w=300, h=37} 	--T1

		}

	}
)
end
return {init=init}

filip.haring
Příspěvky: 4
Registrován: pon 13. led 2025 7:30:16

Re: Vlastní layouty widgetů

Příspěvek od filip.haring »

Zdravím,

vedel by ste mi poradiť ako na widget na X18 viz obr ale nie 3x3 polí ale 4x3 (4 na šírku a 3 na výšku)

Podla čoho sa zvolí velkost pole aby to vyšlo na display? Aké maju byť rozostupy medzi poliami?
x18.png
Ďakujem

Uživatelský avatar
pstasek
Příspěvky: 257
Registrován: pát 26. dub 2019 21:21:55
Bydliště: Trutnov

Re: Vlastní layouty widgetů

Příspěvek od pstasek »

Bude potřeba naškálovat na rozlišení 480x320 bodů, tohle počítá s 800x480. Rozestupy mezi poli v principu nemusí být vůbec, nakonec já je použil pro vizuální doladění. Dělal jsem to metodou pokus-omyl, aby to vyšlo hezky a vešly se texty, takže to záleží na fontech rádia.

Uživatelský avatar
vprheli
Příspěvky: 37
Registrován: pon 17. dub 2023 3:43:57
Bydliště: Praha
Kontaktovat uživatele:

Re: Vlastní layouty widgetů

Příspěvek od vprheli »

Je z různých důvodů dobré zachovat základní rozměry systémových zón. Abyste zjistili rozměry té které zóny je dobré nainstalovat jednoduchý widget zonesize A pak teprve vzít papír a tužku a pocvičit se ve sčítání a odečítání.
Doporučuji ten jednoduchý skript pro rozvržení zón doplnit o detekci radia, tedy rozměr obrazovky, aby se zaregistroval jen pro to rozlišení, pro které je určen.

Malá poznámka: Pokud mezi zónami neuděláte mezery, povinnost to není, a budete mít takových rozvržení více, nepoznáte ve výběru rozvržení o který se jedná, protože bude celý žlutý.

Kód: Vybrat vše

-- ┌----------┬----------┬----------┐
-- │          │          │          │
-- │          │          │          │ 
-- │          ├----------┤          │
-- │          │          │          │
-- │          │          │          │
-- └----------┴----------┴----------┘
--
local function init()
  local version = system.getVersion()
  local board   = version.board
  if string.find(board,"20") then    
    system.registerLayout(
      {	key="myl6", 
        widgets={
          {x=8, y=100, w=256, h=316},			
          {x=272, y=100, w=256, h=154},
          {x=272, y=264, w=256, h=154},
          {x=536, y=100, w=256, h=316},			
        }
      }
    )
  end
end
return {init=init}
[/color]
Přílohy
layout-6.zip
rozdělení zón s detekcí radia pro X20
(503 bajtů) Staženo 466 x
zonesize.zip
zobrazí jen rozměr zóny do které ho umístíme
(554 bajtů) Staženo 454 x

filip.haring
Příspěvky: 4
Registrován: pon 13. led 2025 7:30:16

Re: Vlastní layouty widgetů

Příspěvek od filip.haring »

Ahoj, velmi ďakujem za ten script "zonesize". Ten mi veľmi pomohol. Zo začiatku som sa trápil bez toho, ale s scriptom to bolo super. Neviem teda či som dobre zadefinoval detekci rádia, ale ide mi. Mám X18, ak by niekomu bolo na niečo toto rozdelenie, tak sdílim.

Kód: Vybrat vše

local function init()
  local version = system.getVersion()
  local board   = version.board
  if string.find(board,"18") then    
    system.registerLayout(
      {	key="myl6", 
        widgets={
          {x=10, y=60, w=100, h=100},			
          {x=115, y=60, w=100, h=100},
          {x=220, y=60, w=100, h=100},	
          {x=325, y=60, w=100, h=100},	
          {x=10, y=165, w=100, h=100},	
          {x=115, y=165, w=100, h=100},	
          {x=220, y=165, w=100, h=100},	
          {x=325, y=165, w=100, h=100},	
        }
      }
    )
  end
end
return {init=init}
IMG_20250221_212120.jpg

Uživatelský avatar
vprheli
Příspěvky: 37
Registrován: pon 17. dub 2023 3:43:57
Bydliště: Praha
Kontaktovat uživatele:

Re: Vlastní layouty widgetů

Příspěvek od vprheli »

Pro nejběžnější rádia jsou hodnoty které hledáme v parametru board následující:
20, 18, 14, 12, 10 a XE

Odpovědět

Zpět na „ETHOS“