From 4b6bd55df46f7209160b6ffd6ccdb11bb417dbb7 Mon Sep 17 00:00:00 2001 From: di1ara Date: Wed, 3 Dec 2025 16:50:10 -0500 Subject: [PATCH] fix DpiAwareFont default size calculation --- piker/ui/_style.py | 2 +- tests/test_dpi_font.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 tests/test_dpi_font.py diff --git a/piker/ui/_style.py b/piker/ui/_style.py index 196d6fd8..21fb3e74 100644 --- a/piker/ui/_style.py +++ b/piker/ui/_style.py @@ -182,7 +182,7 @@ class DpiAwareFont: # always going to hit that error in range mapping from inches: # float to px size: int. self._font_inches = inches - font_size = math.floor(inches * dpi) + font_size = math.floor(inches * pdpi) log.debug( f"screen:{screen.name()}\n" diff --git a/tests/test_dpi_font.py b/tests/test_dpi_font.py new file mode 100644 index 00000000..04decfcf --- /dev/null +++ b/tests/test_dpi_font.py @@ -0,0 +1,18 @@ +from PyQt6 import QtGui +from piker.ui._style import DpiAwareFont + +class MockScreen: + def physicalDotsPerInch(self): + return 169 # example HiDPI + def logicalDotsPerInch(self): + return 96 + def name(self): + return "MockScreen" + +# create font instance +font = DpiAwareFont() + +# pass the mock screen to configure_to_dpi +font.configure_to_dpi(screen=MockScreen()) + +print("Computed pixel size:", font.px_size)