[Interest] How to render small Images decently on non retina displays with QtQuick?

Uwe Rathmann Uwe.Rathmann at tigertal.de
Thu Mar 15 20:05:29 CET 2018


On Thu, 15 Mar 2018 14:17:00 +0000, Shawn Rutledge wrote:

> That sounds interesting.  What format do you want to precompile them to?

Well, as all we need is to restore the members of a class exactly, like 
they have been in memory, before we wrote them to disk, there should be a 
way to do this without having to write a parser.

But this is all I have to offer so far. The idea of using mmap exists 
since the very beginning of our project, but as we already have no 
performance issues with how we load the images today it has a low 
priority.

The format we are using today can be found here: https://github.com/
uwerat/qskinny/blob/master/src/graphic/QskGraphicIO.cpp.

To be complete I also implemented embedded QImage/QPixmap, but in reality 
we only have QPainterPath vector data and state change informations - 
both stored stored in a QVector. Beside that there is some Meta Data 
( supporting proper layouting of scaled vector graphics ) - so all in all 
it should be doable.

--

Unfortunately Qt development never really saw much potential in using 
vector graphic formats for writing user interfaces. It was never a first 
class citizen for widgets, but with Qt/Quick the idea totally got lost, 
as the one-window-always-in-fullscreen use case has become dominant.

I remember, that there once was a page ( maybe it is still there, but I 
can't find it ) in the Qt documentation, that explicitly mentioned the 
combination of Layouts and SVG as solution for writing scalable user 
interfaces.

But IIRC SVGs do not even exist in the complete Qt/Quick API and the thin 
layer ( a.k.a Qt/Quick Layouts ) on top of QGridLayoutEngine does not 
even forward the available features ( f.e dynamic constraints ) of this 
powerful class to the user.

If you like you can compare it with the layout system I have implemented 
on top of the same engine: https://github.com/uwerat/qskinny/tree/master/
src/layouts. It is more or less the same, what the widget layouts offer + 
a couple of extras I always missed in the past when using them.

ciao,
Uwe







More information about the Interest mailing list