Alright, after some experimentation - most of that is just wrong :)
What the "logical dots" and "device-independent" pixels are, I still don't know, but the units used by default by QML seem to be "physical dots". These do not match actual screen pixels though, at least not always. It seems you need to multiply "physical dots" by QScreen::devicePixelRatio to get the actual on screen pixels (and even then, on newer "Retina" type displays you will get some, hardware forced I assume, downsampling before going to the actual physical pixels on the screen: http://www.paintcodeapp.com/news/iphone-6-screens-demystified). On Android, "physical dots" seem to match actual on screen pixels 1:1 though, but I'd recommend still multiplying by devicePixelRatio, just to be safe against future Android devices where this does not hold.
In short, for a fullscreen app:
QScreen::size()*QScreen::devicePixelRatio() will give you the actual screen resolution in actual hardware pixels
QScreen::physicalDotsPerInch()*QScreen::devicePixelRatio() will give you the actual physical pixel ppi/dpi, of course
numInches*QScreen::physicalDotsPerInch() will give you the number of "physical dots" (the value you should give to QML), if you want something to be "numInches" inches long
numPixels/QScreen::devicePixelRatio() will give you the number of "physical dots", if you want something to be "numPixels" actual pixels long on the actual screen.
Keep in mind though, that on iPhone 6 Plus (and other similar newer "Retina" type displays, I assume) even this will not give you direct access to actual on screen pixels 1:1 - it's just not possible. You will be rendering with 1:1 pixel precision to a 1242×2208 buffer, which will then get downsampled by a factor of 1.15 to 1080×1920 when actually displayed on screen, see: http://www.paintcodeapp.com/news/iphone-6-screens-demystified - it might not be that bad, everything you draw will simply have some hardware forced "anti-aliasing" of sorts, which might be bad or good, you decide, but there is no way of getting directly 1:1 to actual hardware pixels, AFAIK.
Please feel free to correct me if I'm still wrong somewhere, or confirm, so this can be more trustworthy and useful to someone in the future.