On 10/11/2012 02:22 PM, Sorvig Morten wrote: > > On Oct 11, 2012, at 10:58 AM, Bache-Wiig Jens <jens.bache-w...@digia.com> > wrote: >> >> 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. > > I agree in general. I'm wondering if a 2 pixel-wide line for QPen(Qt::black, > 0.0) would be a better option in high-dpi mode - the user is expecting to > "fill" one point. The result will look like a scaled pixmap, but won't have > gaps. > > Morten
You mean a 1 "logical" pixel-wide line? ;) But yeah, agreed, for high-dpi mode it will make sense that everything gets scaled by 2x2, both cosmetic and geometric lines, for the sake of consistency. "The result will look like a scaled pixmap" - well, an antialiased non axis aligned line will still look sharp, unlike a scaled pixmap. "but won't have gaps", that depends, if you're mixing line drawing and rectangle filling you might have gaps. Example: painter->setPen(Qt::black); painter->drawLine(0, 0, 10, 0); painter->fillRect(0, 1, 10, 1, Qt::black); Since lines and other outlines are centered on the pixel grid lines instead of in the pixel centers, if you scale this by 2x2 you will get the line filling the device rectangle starting at QPoint(0, -1) with a size QSize(20, 2), whereas the rect fills the device rectangle starting at QPoint(0, 2) with a size QSize(20, 2). Thus, there would be a one pixel horizontal gap starting at QPoint(0, 1) with size QSize(20, 1). If the line is clipped by the widget it will visibly only be one pixel high, whereas the rectangle will be two pixels high. This way of mixing line drawing and filling in style code is therefore pretty evil, but unfortunately we do it in a lot of places. Most drawLine() calls in the style should really be replaced with calls to fillRect(). That's the curse of the 0.5 pixel offset between fills and strokes, and not writing the style code with scalability in mind. -- Samuel _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development