Font scaling should be fixed with https://github.com/psmedley/qt6-base-os2/commit/e54d5f1f160f9d5798f2e483ea8f8e7e9014df77 - new qos2.dll link is in the testing thread.
I got lucky with browsing github during my lunch break today, and found https://github.com/psmedley/qt6-base-os2/blob/main/src/gui/kernel/qhighdpiscaling.cpp - searching for references to this led me to a commit which added logicalBaseDPI on other platforms - and voila
seems logicalBaseDPI defaulted to 96,96 is not set - which was different to the screen/font dpi of 120,120 - so windows got scaled (which we didn't wnat/need).
I don't get your explanation. From what I can see, QPlatformScreen::logicalDpi is not properly implemented in your github repo. It just returns QPlatfromScreen::logicalBaseDpi and therefore a 1:1 scaling between "logical" and "physical" for x and also y coordinates.
The BWW repo has an implementation for QPlatformScreen::logicalDpi that is more complex and will lead to a different scaling, at least under certain conditions.
Additionally: Looks like you can fumble around with environment var: QT_FONT_DPI to set your logical DPI. Maybe you can try "set QT_FONT_DPI=120" and see if that makes a difference. At least you can experiment with it ...
And I think it seconds what Alex said: QScreen:: is about Windows scaling and QPlatformScreen:: seems to center around font scaling, at least according to the comments in file qplatformscreen.cpp, at least the BWW repo has this:
/*!
Reimplement this function in subclass to return the logical horizontal
and vertical dots per inch metrics of the screen.
The logical dots per inch metrics are used by QFont to convert point sizes
to pixel sizes.
The default implementation uses the screen pixel size and physical size to
compute the metrics.
\sa physicalSize
*/
QDpi QPlatformScreen::logicalDpi() const
{
QSizeF ps = physicalSize();
QSize s = geometry().size();
if (qFuzzyIsNull(ps.width()) || qFuzzyIsNull(ps.height()))
return QDpi(96, 96);
return QDpi(25.4 * s.width() / ps.width(),
25.4 * s.height() / ps.height());
}