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: Boj Markízy a Novy o federální trh vrcholí

Boj Markízy a Novy o federální trh vrcholí

DigiZone.cz: Prima Max bude mít letní kino. Na střeše...

Prima Max bude mít letní kino. Na střeše...

Měšec.cz: Cestujte bez starostí, získejte výhodné pojištění

Cestujte bez starostí, získejte výhodné pojištění

Podnikatel.cz: Český podnikatel a #brexit. Co nastane?

Český podnikatel a #brexit. Co nastane?

Vitalia.cz: Jelení farma produkuje kvalitní maso

Jelení farma produkuje kvalitní maso

Lupa.cz: Jaké IoT tarify nabízejí mobilní operátoři?

Jaké IoT tarify nabízejí mobilní operátoři?

Podnikatel.cz: Takhle si Babiš představuje nové daně

Takhle si Babiš představuje nové daně

Lupa.cz: Sdílíte na Facebooku soukromé odkazy?

Sdílíte na Facebooku soukromé odkazy?

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

120na80.cz: Cestovní lékárnička: na co nezapomenout

Cestovní lékárnička: na co nezapomenout

DigiZone.cz: ČTÚ květen: rušení TV vysílání narůstá

ČTÚ květen: rušení TV vysílání narůstá

Měšec.cz: Tipy, než vyrazíte autem na dovolenou

Tipy, než vyrazíte autem na dovolenou

Vitalia.cz: Máte chutě? Nejezděte do světa, ale do Dobřichovic

Máte chutě? Nejezděte do světa, ale do Dobřichovic

Podnikatel.cz: Zůstat na Heurece je čiré bláznovství

Zůstat na Heurece je čiré bláznovství

Podnikatel.cz: Babiš představil daňovou revoluci Moje daně

Babiš představil daňovou revoluci Moje daně

DigiZone.cz: Bizár sněmovního jednání

Bizár sněmovního jednání

DigiZone.cz: Mobilní aplikace pro DVTV je tady

Mobilní aplikace pro DVTV je tady

Podnikatel.cz: Chce s trdelníky ovládnout Asii. Poznejte ho

Chce s trdelníky ovládnout Asii. Poznejte ho

Vitalia.cz: Vědci: Hnojení chemií je zbytečné

Vědci: Hnojení chemií je zbytečné