Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
None
-
5.14.0 Beta3, 6.2.1
-
Windows 10 x64
Building Qt 5.14.0 with Visual Studio 2017 x64
-
-
Someone's on it
Description
My setup is as follows:
Windows10
Monitor 1: 3840x2160 resolution, 150% scaling
Monitor 2: 1920x1200 resolution, 100% scaling
Using the QT_SCALE_FACTOR_ROUNDING_POLICY=PassThrough causes issues on both monitors. Mostly it has to do with rendering/painting of simple widget controls. I ran into these issues while using the Assistant and Designer applications. The issues include the following:
- Focus around QLineEdit controls (see attachment)
- Hovering over QPushButton controls (see attachment)
- QCheckBox is bigger than it needs to be (see attachment)
- Checkmark in a QCheckBox looks fuzzy (see attachment) (on both monitors)
- Arrows in QComboBox controls looks fuzzy (see attachment) (on both monitors)
- Fonts on the native QFileDialog do not respect scaling (see attachment) (on both monitors)
- Designer MDI Child window's close and minimize buttons are not properly resized when the application is moved from Monitor 1 to Monitor 2
After more testing, it appears similar issues exist with rendering controls when using Ceil, Round, Floor and RoundPreferFloor values for QT_SCALE_FACTOR_ROUNDING_POLICY. Also, turning on the "Fix scaling for apps" option on Windows 10 causes additional scaling issues.
Monitor Output from qtdiag.exe
Screens: 2, High DPI scaling: active
- 0 "\\.\DISPLAY3" Depth: 32 Primary: yes
Manufacturer:
Model:
Serial number:
Geometry: 2560x1440+0+0 (native: 3840x2160+0+0) Available: 2560x1409+0+0
Virtual geometry: 5760x1440+0+0 Available: 5760x1409+0+0
2 virtual siblings
Physical size: 600x340 mm Refresh: 60 Hz Power state: 0
Physical DPI: 108.373,107.576 Logical DPI: 96,96 (native: 144,144) Subpixel_RGB
High DPI scaling factor: 1.5 DevicePixelRatio: 1.5 Pixel density: 1
Primary orientation: 2 Orientation: 2 Native orientation: 0 OrientationUpdateMask: 0
- 1 "\\.\DISPLAY2" Depth: 32 Primary: no
Manufacturer:
Model:
Serial number:
Geometry: 1920x1200+3840+0 Available: 1920x1170+3840+0
Virtual geometry: 5760x1440+0+0 Available: 5760x1409+0+0
2 virtual siblings
Physical size: 518x324 mm Refresh: 60 Hz Power state: 0
Physical DPI: 94.1467,94.0741 Logical DPI: 96,96 Subpixel_RGB
High DPI scaling factor: 1 DevicePixelRatio: 1 Pixel density: 1
Primary orientation: 2 Orientation: 2 Native orientation: 0 OrientationUpdateMask: 0
Attachments
Issue Links
- relates to
-
QTBUG-82601 QT_SCALE_FACTOR_ROUNDING_POLICY=PassThrough sometimes causes 1 pixel missmatch between painted area and flushed area.
- Closed
-
QTBUG-86344 Investigate UI rendering at fractional scale factors
- Open