From d18d6eb2fba0c6d3d66e23cd89fd7df6352e85f1 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Thu, 13 Aug 2026 16:38:50 +0200 Subject: [PATCH 1/2] fix: Fix the colormap creation for Qt6 --- package/PartSeg/common_gui/qt_util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/PartSeg/common_gui/qt_util.py b/package/PartSeg/common_gui/qt_util.py index 7930b559a..e7ac27e0c 100644 --- a/package/PartSeg/common_gui/qt_util.py +++ b/package/PartSeg/common_gui/qt_util.py @@ -19,4 +19,4 @@ def get_mouse_x(event: QMouseEvent) -> float: return event.position().x() def get_mouse_y(event: QMouseEvent) -> float: - return event.position().x() + return event.position().y() From f7340796120e48830a6341a9829f8fd9ba48168a Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Thu, 13 Aug 2026 17:37:32 +0200 Subject: [PATCH 2/2] add tests --- package/PartSeg/common_gui/__init__.py | 2 +- package/tests/test_PartSeg/test_common_gui.py | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/package/PartSeg/common_gui/__init__.py b/package/PartSeg/common_gui/__init__.py index dd2985766..423599e38 100644 --- a/package/PartSeg/common_gui/__init__.py +++ b/package/PartSeg/common_gui/__init__.py @@ -1,3 +1,3 @@ """ -THis module contains Qt based widgets which are used in all PartSeg subprograms +This module contains Qt-based widgets which are used in all PartSeg subprograms """ diff --git a/package/tests/test_PartSeg/test_common_gui.py b/package/tests/test_PartSeg/test_common_gui.py index cac895f8b..23458128c 100644 --- a/package/tests/test_PartSeg/test_common_gui.py +++ b/package/tests/test_PartSeg/test_common_gui.py @@ -20,8 +20,8 @@ from magicgui.widgets import Container, Widget, create_widget from napari.utils import Colormap from pydantic import Field -from qtpy.QtCore import QPoint, QRect, QSize, Qt -from qtpy.QtGui import QPaintEvent +from qtpy.QtCore import QEvent, QPoint, QPointF, QRect, QSize, Qt +from qtpy.QtGui import QMouseEvent, QPaintEvent from qtpy.QtWidgets import ( QApplication, QCheckBox, @@ -94,6 +94,7 @@ MultipleLoadDialog, ) from PartSeg.common_gui.qt_modal import QtPopup +from PartSeg.common_gui.qt_util import get_mouse_x, get_mouse_y from PartSeg.common_gui.searchable_combo_box import SearchComboBox from PartSeg.common_gui.show_directory_dialog import DirectoryDialog from PartSeg.common_gui.universal_gui_part import ( @@ -2050,3 +2051,17 @@ def test_accept(self, qtbot, base_settings, tmp_path, monkeypatch): w.accept() assert base_settings.get_path_history() assert Path(base_settings.get("s_path")).resolve() == (tmp_path / "sample_dir").resolve() + + +@pytest.mark.usefixtures("qapp") +def test_get_mouse_position(): + event = QMouseEvent( + QEvent.Type.MouseButtonPress, + QPointF(10, 20), + QPointF(20, 30), + Qt.MouseButton.LeftButton, + Qt.MouseButton.LeftButton, + Qt.KeyboardModifier.NoModifier, + ) + assert get_mouse_x(event) == 10 + assert get_mouse_y(event) == 20