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..

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

Vitalia.cz: Opuncie je plod kaktusu. Pozor na trny

Opuncie je plod kaktusu. Pozor na trny

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

DigiZone.cz: Wimbledon na Nova Sport až do 2019

Wimbledon na Nova Sport až do 2019

DigiZone.cz: Ginx TV: pořad o počítačových hráčích

Ginx TV: pořad o počítačových hráčích

120na80.cz: Hrbatá prsa aneb mýty o implantátech

Hrbatá prsa aneb mýty o implantátech

Podnikatel.cz: Instalatér, malíř a elektrikář. "Vymřou"?

Instalatér, malíř a elektrikář. "Vymřou"?

Podnikatel.cz: Byla finanční manažerka, teď cvičí jógu

Byla finanční manažerka, teď cvičí jógu

Lupa.cz: Aukro.cz mění majitele. Vrací se do českých rukou

Aukro.cz mění majitele. Vrací se do českých rukou

Podnikatel.cz: Udělali jsme velkou chybu, napsal Čupr

Udělali jsme velkou chybu, napsal Čupr

Vitalia.cz: Jaký je rozdíl mezi brambůrky a chipsy?

Jaký je rozdíl mezi brambůrky a chipsy?

Vitalia.cz: 5 pravidel proti infekci močových cest

5 pravidel proti infekci močových cest

Vitalia.cz: Inspekce našla nelegální sklad v SAPĚ. Zase

Inspekce našla nelegální sklad v SAPĚ. Zase

Lupa.cz: Další Češi si nechali vložit do těla čip

Další Češi si nechali vložit do těla čip

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

Vitalia.cz: Jsou vegani a vyrábějí nemléko

Jsou vegani a vyrábějí nemléko

Vitalia.cz: Když všichni seli řepku, on vsadil na dýně

Když všichni seli řepku, on vsadil na dýně