Skip to content

Sharp splash screen and watermark on high-DPI displays - #34

Merged
PierreRaybaut merged 2 commits into
developfrom
fix/460-hidpi-rendering
Oct 29, 2026
Merged

PierreRaybaut merged 2 commits into
developfrom
fix/460-hidpi-rendering

Conversation

@PierreRaybaut

Copy link
Copy Markdown
Contributor

Closes #33 (related: DataLab-Platform/DataLab#460, PlotPyStack/guidata#121).

With a display scaling greater than 100% (e.g. 125%), the splash screen and the watermark of empty plots were blurry: their image was loaded as a pixmap rendered for a 100% scaling, which Qt upscaled.

Changes

  • The splash screen (SigimaXSplashScreen) and the plot watermark (SigimaXPlotWidget) images are loaded with guidata.configtools.get_pixmap (Sharp images and scaled text with Windows display scaling PlotPyStack/guidata#122), which uses their @2x high-resolution variant (e.g. splash@2x.png next to splash.png), if any, to display them at the resolution of the screen. Without variant, the behavior is unchanged.
  • The fallback splash screen, drawn when no image is available, is drawn at the resolution of the screen.
  • Release notes and French translation.

get_pixmap is available in guidata develop/master (merged in PlotPyStack/guidata#122); the minimum guidata version required by SigimaX is left unchanged for now and will be raised once guidata is released.

Tests

  • New test_splash_uses_hidpi_variant; the fallback test now checks the logical size of the pixmap.
  • Full test suite passes locally (355 tests, PyQt5).

Load the splash screen and plot watermark images with guidata's
get_pixmap, which uses their @2x high-resolution variant (if any) to
display them at the resolution of the screen, instead of letting Qt
upscale an image rendered for a 100% display scaling. The fallback splash
screen is also drawn at the resolution of the screen.

Refs #33

Assisted-by: Claude Opus 5.5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant