On 04 Dec 2013, at 11:47, Sletta Gunnar <[email protected]> wrote:

> QWidget has the exact opposite problem. Layouts, styles and rendering happens 
> in pixel units while fonts are sized in point size. This is also a problem 
> when moving between platfoms as the pixelsize of a point has a different 
> definition on each platform. When running widgets on a hidpi screen, the 
> fonts are usually huge compared to spacing, lines and icons. In addition to 
> looking quite ugly it easily breaks the layout scheme set up by the 
> application because the text takes up too much space.
> 
> As long as one sticks to one unit type through the application everything is 
> fine. Mixing leads to problems.
> 
> Just thinking out loud:
> 
> Sticking to pixels makes it possible for the application developer to make 
> the right decision based on what he/she wants to achieve. Layout out relative 
> to millimeters can quite easily be done by providing supporting logic in Qt.
> 
> If we added conversion functions for inch(), cm(), mm(), points() to 
> QQuickItem, it could look up its current window/screen object and figure out 
> the relationship between each unit for the screen the item is on and just set 
> that. The app can then layout in the unit space it prefers with information 
> readily available. 

I agree on sticking to one unit. However, we've tested using screen metrics and 
found that not all screens report those, or worse, some return bogus values. 
Think about the projector case, what should it report? We also ran into odd 
behavior when moving windows between screens, where windows would resize 
themselves (or fail to do so) to accommodate to the new definition of “cm”.

I believe CSS anchors its “px” unit to either the device pixel grid (and then 
some integer multiple is recommended), or to physical size (for example when 
printing). In Qt this could be decided by the platform. The problem is however 
that you don’t know if you can trust the screen metrics you get.

Morten

_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to