QGraphicsDropShadowEffect and Retina
I need to create a label that is visible on both dark and light backgrounds. The normal trick to doing this is to add a drop shadow to your text. For example, the text might be black, so you add a white drop shadow. This allows the text to be visible regardless of the background.
So.... I decided to use QGraphicsDropShadowEffect. The problem is, when I use this on a label, the text becomes fuzzy on my Mac (i.e. no Retina support). Looks fine on Windows and Linux because they do not have HDPI needs. How do I work around this? It looks absolutely terrible on a Mac.
Any other tricks to create a shadow around the text that might not need QGraphicsDropShadowEffect? I am open to that too.
P.S. When does Qt plan to fully support Retina?
Hi and welcome to devnet,
I don't have an answer to first question, that you should bring on the interest mailing list, you'll find Qt's developers/maintainers there (this forum is more user oriented)
As for the second question, AFAIK, it's already supported on OS X and iOS, and currently in progress for the other platforms.
By the way what version of Qt are you using ?
I am using 5.3, but its an issue with all of 5.X.
Another issue that is really annoying, is that the @2x syntax doesn't work in the style sheets. So if you want to theme a widget, it becomes a real pain.
They really need to think the syntax for HDPI because right now its very finicky. You do anything outside of the norm, and it all gets messed up.
Ok, so I added a \ to the @ symbol which worked, so you can do that to get the style sheet to load the image, but that image is also fuzzy... even with the @2x. So my guess is there currently is no support for High-DPI images with the style sheets.
Is there a way to style the widgets manually without having to use the style sheets... because if there is a way, it might be possible to correct the problem that way.
This also leads me to believe that there is only partial support for High-DPI at the moment... would be nice to know when full support is planned.
In case anyone else has this issue, I overloaded the QPainEvent for the widget I was trying to theme, did the drawing manually. It works fine that way, but its a lot of work. It would be great if the stylesheets just worked.
I am going to look into how this would effect the text issue.
It looks like drawing text also works. Not sure how I am going to manually do the outline yet, but I'm sure I will work out the logic.
Support in the style sheet might indeed be missing it uses a custom QStyle which might not yet be HDPI aware. You should have a look at the "bug report system":http://bugreports.qt-project.org to see if there's already something related. If not you should consider opening a report or feature request for that matter.
For the discussion related to the HDPI support for all platforms you can have a look at the development mailing list archive from this month.
Awesome. I just sent out something to the mailing list about this, and I will look at the bug reports.
Thanks for the advice.
Did you register first before sending the email ?
no, so it's being held for review.
IIRC, you can cancel that one, register and re-send the mail