Describe the bug
When using a high-DPI display or changing the Windows display scaling factor (e.g., 150%, 200%, 300%), certain Qt widgets — particularly those from guidata and PlotPy — do not adapt their rendering. Text and UI elements remain at their original pixel size, making them unreadable or disproportionately small compared to the rest of the interface.
This affects any scenario where the system scale factor changes (e.g., moving the window to a monitor with a different DPI, or adjusting Windows "Scale and layout" settings).
To Reproduce
Set the Windows display scaling to 200% or 300% (Settings > Display > Scale and layout)
Launch DataLab
Observe various UI elements: DataSet editing dialogs, plot axis labels, panel text, toolbar icons
Notice that some text and widgets appear very small and unreadable, while native Qt elements (menus, title bar) scale correctly
Expected behavior
All UI elements — including text, icons, dialog layouts, and plot labels — should scale proportionally with the system display scaling factor, remaining legible at any supported scale.
Screenshots
125% (low dpi monitor) :

200% (high dpi monitor) :

Installation information
DataLab installation type: [Python package / stand-alone Windows version]
Additional context
Preliminary investigation points to several root causes across the PlotPyStack:
guidata: Hardcoded px values in DataSet HTML rendering (font-size: 13px, padding: 8px 12px in [datatypes.py], fixed icon sizes in ImageChoiceWidget (qtitemwidgets.py), and a viewport width cap of 1024 pixels in DatasetTableView (qtwidgets.py)
PlotPy: Hardcoded pixel values in custom range slider stylesheets ([_range_style.py]), fixed minimum plot widget sizes (plotwidget.py), and fixed dialog dimensions (e.g., RotateCropDialog)
PythonQwt: Already has partial DPI handling via qwtUnscaleFont() in [text.py] and devicePixelRatio awareness in the painter layer, but text layout calculations in QwtPlainTextEngine may not fully account for all scaling scenarios
This issue likely spans multiple repositories (guidata, PlotPy, PythonQwt) and may require a coordinated fix across the stack.
Related issues
Describe the bug
When using a high-DPI display or changing the Windows display scaling factor (e.g., 150%, 200%, 300%), certain Qt widgets — particularly those from guidata and PlotPy — do not adapt their rendering. Text and UI elements remain at their original pixel size, making them unreadable or disproportionately small compared to the rest of the interface.
This affects any scenario where the system scale factor changes (e.g., moving the window to a monitor with a different DPI, or adjusting Windows "Scale and layout" settings).
To Reproduce
Set the Windows display scaling to 200% or 300% (Settings > Display > Scale and layout)
Launch DataLab
Observe various UI elements: DataSet editing dialogs, plot axis labels, panel text, toolbar icons
Notice that some text and widgets appear very small and unreadable, while native Qt elements (menus, title bar) scale correctly
Expected behavior
All UI elements — including text, icons, dialog layouts, and plot labels — should scale proportionally with the system display scaling factor, remaining legible at any supported scale.
Screenshots
125% (low dpi monitor) :

200% (high dpi monitor) :

Installation information
DataLab installation type: [Python package / stand-alone Windows version]
Additional context
Preliminary investigation points to several root causes across the PlotPyStack:
guidata: Hardcoded px values in DataSet HTML rendering (font-size: 13px, padding: 8px 12px in [datatypes.py], fixed icon sizes in ImageChoiceWidget (qtitemwidgets.py), and a viewport width cap of 1024 pixels in DatasetTableView (qtwidgets.py)
PlotPy: Hardcoded pixel values in custom range slider stylesheets ([_range_style.py]), fixed minimum plot widget sizes (plotwidget.py), and fixed dialog dimensions (e.g., RotateCropDialog)
PythonQwt: Already has partial DPI handling via qwtUnscaleFont() in [text.py] and devicePixelRatio awareness in the painter layer, but text layout calculations in QwtPlainTextEngine may not fully account for all scaling scenarios
This issue likely spans multiple repositories (guidata, PlotPy, PythonQwt) and may require a coordinated fix across the stack.
Related issues
dpi_scale) ->DPI handling gaps and per-monitor scaling on high-DPI displays PlotPyStack/PythonQwt#106