On Oct 11, 2012, at 10:58, Bache-Wiig Jens <jens.bache-w...@digia.com> wrote:

> This issue came up while preparing some code to be High-dpi aware but it is 
> really a completely separate issue.
> While I previously supported the idea that cosmetic pens should be two pixels 
> wide by default on HDPI screens, I think we should take it one step further 
> as the real issue is caused by the default values of QPen.
> 
> QPen defaults to a pen width of 0, which might or might not be an intentional 
> behaviour.  This is interpreted as a Cosmetic pen which will have 1 pixel 
> thickness regardless of the scale on the scene. Any code that simply does 
> painter->setPen(someColor) will have this behaviour. 
> 
> The only way to avoid it is to explicitly create a QPen(Qt::Black, 1.0). 
> Since normally there would be no difference between these behaviours, I 
> assume that the majority of code will simply ignore the pen with altogether. 
> Most existing styles certainly does this and mostly break with HDPI set 
> unless every pen is explicitly set to 1.0.
> 
> I have personally never seen an actual use case where a cosmetic pen makes 
> sense, but  I assume there are reasons for having i so anyone creating an 
> explicit QPen(Qt::black, 0.0) should get a 1.0 pixel thick line regardless of 
> scaling.

PDF/PS define it this way, and is used when writing that kind of output.

> With this in mind, I would propose that we change the initialisation value of 
> QPen to be 1.0 for pen width by default in Qt5, and invert the name and 
> behaviour of the QPainter::NonCosmeticDefaultPen render hint. Most code 
> should not be affected by it and code that depends on this really needs 
> cosmetic pen should already be initialising their QPen explicitly.

Agreed, I only ever used it when I knew I was painting to PDF. So +1 from me.

-- Erik.
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to