Qt 5.6 konečně přinese pořádnou podporu HiDPI

Roman Bořánek 29. 1. 2016

Framework Qt brzy vyjde ve verzi 5.6, která konečně přinese plnou podporou HiDPI. Tedy možnost snadno škálovat prvky aplikací podle rozlišení displeje. Vývojáři s tím nebudou mít moc práce, aktivace i konfigurace škálování je velmi jednoduchá. To nejdůležitější naleznete v příspěvku na blogu Qt. Připravovanou verzi Qt 5.6 už je také možné vyzkoušet v betaverzi.

Našli jste v článku chybu?
  • 29. 1. 2016 15:10

    Pali (neregistrovaný) ---.karlin.mff.cuni.cz

    Takže si to už pomocou XRandR 1.3 bude vedieť zistiť veľkosť v cm každého jedného pripojeného monitoru (output zariadenia), správne pre ne zrátať DPI/PPI a nastaviť škálovanie nezávisle pre každý jeden monitor? A potom to správne prekresľovať pri presune okna z jedného monitora na druhý, ktorý má iné DPI?

    A čo urobia v prípade, že okno si nechám roztiahnuté cez dva monitory (ktoré majú rôzne DPI)?

    Alebo to tiež pokašlali ako úplne tupí vývojari Chrome, ktorí DPI rátajú z cm rozmerov XScreen, čo je v skutočnosti obdĺžnikový "obal" okolo všetkých pripojených monitorov (čo má nulovú vypovedajúcu hodnotu pre monitory s rôznym DPI)? Btw, parameter --dpi pre xrandr nastavuje práve tútu zbytočnú hodnotu.

  • 29. 1. 2016 17:15

    Tom (neregistrovaný) ---.cust.sloane.cz

    Už dávno lze v Qt zjistit rozlišení a rozměry každého jednotlivého monitoru a podle toho nastavit vlastní styly (včetně rozměrů prvků). Musí to udělat a pohlídat programátor. V Qt 5.6 se to jen zjednoduší na nastavení konstanty, podle které Qt přeškáluje styly samo a tím odpadne spousta kódu pro úpravu stylů. Pochybuju že to půjde měnit za běhu, takže dva monitory s různým DPI buď vyřeší programátor (lze už dnes). A nebo nic. Takže očekávám, že nastane přizpůsobení na primární monitor a dál nic.

    Kvízová otázka. Jak by se měla chovat aplikace, která bude každou polovinou na monitoru s výrazně jiným DPI ?

  • 29. 1. 2016 17:59

    Pali (neregistrovaný) ---.karlin.mff.cuni.cz

    > Pochybuju že to půjde měnit za běhu, takže dva monitory s různým DPI buď vyřeší programátor...

    Takže opäť ďalšie nefunkčné riešenie hlavného problému. Už vidím ako každá jedná aplikácia si bude po svojom riešiť problém DPI... a samozrejme správne.

    > Jak by se měla chovat aplikace, která bude každou polovinou na monitoru s výrazně jiným DPI ?

    Predstav si, že máš dva monitory s rovnakou výškou (zobrazovacej plochy) v cm vedľa seba a oba majú rôzne DPI. Z toho vyplýva, že budú mať rôzny počet pixelov na výšku.

    To správne riešenie je také aby užívateľ videl na oboch monitoroch to okno na správnych pozíciach a zároveň aby malo aj "správnu výšku". Teda z pohľadu renderovaných pixelov to okno nebude obĺžnik ale v tvare L (aby sa vykopenzoval počet pixelov).

  • 29. 1. 2016 19:17

    andreeeeeee (neregistrovaný) 217.30.74.---

    IMO je ale tak velmi okrajovy problem (kolko krat bezne tahas okno cez viacero monitorov s vyrazne inymi DPI? Bezne LCD stoja par korun, a profici urcite nebudu riskovat artefakty kvoli roznym DPI), a navyse tak programatorsky narocny (navrhujes rozdelovat canvasy na regiony a v kazdom renderovat s inymi parametrami, a rozdelovat i rendering primitiv? Kolko max. regionov ma podporovat taka vec?), ze pochybujem ze by to komukolvek stalo za riesenie. A som si celkom isty ze sa najdu ludia ktori idealne chovanie vidia opacne ako ty...

  • 1. 2. 2016 11:46

    SB (neregistrovaný) 78.156.151.---

    To určitě není okrajovým problémem! Ve většině případů nemají 2 připojená zobrazovací zařízení stejná DPI.
    Žádné kanvasy není třeba dělit, je třeba pouze renderovat na 2 (či více) zařízení dle DPI, viditelnost je možno řešit standardně ořezem renderované plochy.

  • 29. 1. 2016 19:19

    Ivan (neregistrovaný) ---.net.upcbroadband.cz

    A teď si představte ze máte kód který vezme nápis "ahoj" nechá ho vyrenderovat aktualnim systémovým fontem a z toho určí šířku v pixelech. A pak vytvoří ComboBox tak široký aby se tam ten nápis vešel. Jak se to má chovat při různých DPI? To co navrhujete je propojení vektorového a pixeloveho popisu obrazu a to bude vždy narážet na probemy. Už první verze javy dogmaticky prohlásila, že žádné pixely neexistují a že pro posis gui se budou používat pouze milimetry . Nakonec se od toho upustilo protože to bylo pomalé a neskutečně hnusné.

  • 29. 1. 2016 23:18

    gui_specialista (neregistrovaný) ---.net.upcbroadband.cz

    Ani a) ani b) ani c) nejsou spravne. Za d) je spravne, tedy skalou neni ani rozliseni (napr. px), ani skutecny rozmer obrazu (napr. v mm) ani DPI (tj. prepocet px a mm), nybrz vzdalenost obrazu od oka - viz. https://www.abclinuxu.cz/blog/mirecove_dristy/2013/2/vyvoj-linuxoveho-portalu-alebo-preco-to-este-nie-je-hotove/diskuse#88 .

  • 1. 2. 2016 10:59

    Libcha (neregistrovaný) 194.213.35.---

    Nějak nechápu celou tuhle DPI-přizpůsobovací bublinu.

    Když si koupím dražší monitor s větším množstvím pixelů, jde mi o to, aby se toho na něj vešlo více, a né aby se text zvětšil a vešlo se ho tam spíše méně (nebo stejně).

    Stejným způsobem mě štve, že některá prostředí zabírají více pixelů pro stejné prvky (Win98 versus WinXP versus Win7; KDE3 versus KDE4 apod.), takže zase - lepší monitor, a nevejde se na něj víc.

    Naštěstí jde leckde smáčknout všechny prvky na co nejmenší velikost (např. spodní panel na 24px při nichž je text ještě dobře čitelný), ale ty hrůzy, když si vyzkoušíte defaultní nastavení.

    Nota bene tahle DPI-fičura, která se navíc často rozbíjí (blbě detekuje) a sem tam vypadá plocha jako XPéčka při 800x600 :(

  • 1. 2. 2016 11:50

    SB (neregistrovaný) 78.156.151.---

    Až se vám začnou přesunovat oči z hlavy do prdele, pochopíte.
    Taky není nikde napsáno, že si nemůžete DPI zobrazení přizpůsobit.
    A nakonec: Odpověděl jste si sám - dodnes to pořádně nefunguje nikde, takže podle čeho soudíte, že je to celé k ničemu?

  • 2. 2. 2016 20:35

    Ondra Satai Nekola

    Tak si kup 27" 5K display a nastav si veci, aby se PPI neprizpusobovaly..

DigiZone.cz: Sázka na e-sporty stanici Prima vychází

Sázka na e-sporty stanici Prima vychází

Měšec.cz: Se stavebkem k soudu už (většinou) nemusíte

Se stavebkem k soudu už (většinou) nemusíte

Vitalia.cz: Ostružiny jsou dobré na mužskou potenci

Ostružiny jsou dobré na mužskou potenci

Podnikatel.cz: 3 velké průšvihy obchodních řetězců

3 velké průšvihy obchodních řetězců

120na80.cz: I tuto vodu můžete pít

I tuto vodu můžete pít

Vitalia.cz: Pepsi Cola mění sirup za cukr

Pepsi Cola mění sirup za cukr

Měšec.cz: Platíme NFC mobilem. Konečně to funguje!

Platíme NFC mobilem. Konečně to funguje!

Měšec.cz: Test: Výběry z bankomatů v cizině a kurzy

Test: Výběry z bankomatů v cizině a kurzy

120na80.cz: 7 překážek při odvykání kouření

7 překážek při odvykání kouření

Podnikatel.cz: Italské těstoviny nebyly k mání, tak je začal vyrábět

Italské těstoviny nebyly k mání, tak je začal vyrábět

Lupa.cz: IT scéna po brexitu: přijde exodus vývojářů?

IT scéna po brexitu: přijde exodus vývojářů?

Podnikatel.cz: Nereaguje na výzvu ČOIky, zaplatí milion

Nereaguje na výzvu ČOIky, zaplatí milion

Měšec.cz: Banky umí platby na kartu, jen to neříkají

Banky umí platby na kartu, jen to neříkají

Vitalia.cz: Tohle je Břicháč Tom, co zhubnul 27 kg

Tohle je Břicháč Tom, co zhubnul 27 kg

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

Vitalia.cz: Nejdůležitější změny v potravinářské novele

Nejdůležitější změny v potravinářské novele

DigiZone.cz: Oživení ekonomiky by mělo navýšit reklamu

Oživení ekonomiky by mělo navýšit reklamu

Vitalia.cz: Patří maso do dětského jídelníčku?

Patří maso do dětského jídelníčku?

Podnikatel.cz: Fotogalerie: Jesenka už má skoro 50 let

Fotogalerie: Jesenka už má skoro 50 let

DigiZone.cz: Kauza technik: oficiální vyjádření Novy

Kauza technik: oficiální vyjádření Novy