Because everything else, x, y, width, height, image dimensions, anchor margins, 
etc is in pixels. The fact that we have Font.pointSize is in my opinion a flaw. 
That being said, I wouldn't mind changing Font.pixelSize to Font.size if there 
was an agreement on standardizing on pixels. 

________________________________________
Fra: Mark Gaiser [mark...@gmail.com]
Sendt: 4. desember 2013 14:54
To: Curtis Mitch
Cc: Sletta Gunnar; Thiago Macieira; development@qt-project.org
Emne: Re: [Development] OpenGL drivers

On Wed, Dec 4, 2013 at 12:37 PM, Mitch Curtis <mitch.cur...@digia.com> wrote:
> On 12/04/2013 11:47 AM, Sletta Gunnar 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.
>>
>> Text {
>>      font.pixelSize: cm(0.5);
>>      anchors.left: parent.left
>>      anchors.margins: cm(0.25);
>> }
>>
>>
>> Making them functions makes it impossible to listen for screen changes which 
>> in turn trigger dpi changes so they would have to be properties...
>>
>> Text {
>>      font.pixelSize: 0.5 * cm;
>>      anchors.left: parent.left
>>      anchors.margins: 0.25 * cm;
>> }
>>
>> The properties would look up the item's window and then the screen and do 
>> the calculation from there so no extra memory for each item to store the 
>> properties. And since they don't change all that often, the added 
>> calculation is a negligible overhead. When the item is not associated with a 
>> window, it will have to use the OS definition of a point instead, usually 72 
>> or 96.
>>
>> Just an idea.
>>
>> -
>> Gunnar
>>
>
> That's a pretty cool idea! It would make it so painless to design stuff
> for different screens' DPIs.

I'm confused.
I thought we has pointSize for that reason, no?

To me it sounds like two different ways to accomplish the same thing.
Also, if i'm setting a font.pixelSize i'm expexting pixels to be
drawn. adding a "* cm" makes that moot since the real pixels that will
be drawn are calculated based on whatever cm is.

In other words, don't use pixelSize for it. Just making up a name now,
but how about something like this:

Text {
  ...
  font.realSize: 0.5 cm
  ...
}

seems more readable to me and gives me the expectation that the font
is going to be 0.5 CM (per char).

>
>> ________________________________________
>> Fra: development-bounces+gunnar.sletta=digia....@qt-project.org 
>> [development-bounces+gunnar.sletta=digia....@qt-project.org] p&#229; vegne 
>> av Thiago Macieira [thiago.macie...@intel.com]
>> Sendt: 3. desember 2013 18:09
>> To: development@qt-project.org
>> Emne: Re: [Development] OpenGL drivers
>>
>> On terça-feira, 3 de dezembro de 2013 10:27:24, Thomas Hartmann wrote:
>>> Hi,
>>>
>>> we really should think about introducing em or percent for font sizes.
>>>
>>> But non pixel size fonts create a lot of problems for complex layouts.
>>
>> QWidget has worked with that for 15 years, so I don't accept that as an
>> excuse. We have anchor layouts in Qt Quick, which are a lot more powerful 
>> than
>> the grids and spacers that we used in QWidget.
>>
>> Desktop support does not require pixel perfection. It does require scaling
>> over widely different resolutions and DPIs, though -- from 1366x768 to
>> 3200x1800, for example.
>>
>> --
>> Thiago Macieira - thiago.macieira (AT) intel.com
>>    Software Architect - Intel Open Source Technology Center
>> _______________________________________________
>> Development mailing list
>> Development@qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/development
>>
> _______________________________________________
> Development mailing list
> Development@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to