1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-26 22:03:04 +04:00

2 Commits

Author SHA1 Message Date
Thebinary110 9c487708f9 highgui test: force offscreen Qt platform to avoid CI crash
CI (Ubuntu ARM64 x2) showed the Python test suite aborting the whole
process with exit code 134: on a Qt-enabled build, namedWindow() tried
the "xcb" platform plugin, found no display (the Python test step,
unlike the C++ gtest step, does not run under xvfb-run), and Qt
aborted the process instead of raising a catchable exception -- so the
existing try/except around namedWindow never got a chance to run.

Fix: set QT_QPA_PLATFORM=offscreen (only if not already set) before
any GUI call. "offscreen" is the platform plugin Qt ships specifically
for headless/CI use, and is listed as available in the failing CI
job's own log output.

Verified locally: built opencv_python3 with WITH_QT=ON (real Qt6, not
the WITH_QT=OFF build used in the initial verification), and confirmed
that in a clean environment (no DISPLAY, no QT_QPA_PLATFORM preset),
namedWindow + saveWindowParameters + loadWindowParameters all succeed
with this fix, where they would previously depend on a native display
backend being reachable.
2026-07-24 12:31:53 +05:30
Thebinary110 8308fbf9ba highgui: expose saveWindowParameters and loadWindowParameters to Python
Both functions persist/restore a window's size, position, flags,
trackbar values, and zoom/pan state (Qt highgui backend only), take
only a plain String argument, and were already fully documented -- but
were declared CV_EXPORTS instead of CV_EXPORTS_W, so they were
unreachable from Python.

Sibling Qt-only functions in the same header (displayOverlay,
displayStatusBar) already follow the CV_EXPORTS_W + runtime
"not implemented without Qt" convention this change follows.

Adds a Python test that exercises namedWindow + save/loadWindowParameters
and gracefully skips when no GUI backend or no Qt support is present,
consistent with how other environment-dependent tests in this suite
(e.g. CUDA) skip rather than fail.

Verified locally: built opencv_python3 from this branch (WITH_QT=OFF)
and confirmed cv2.saveWindowParameters / cv2.loadWindowParameters are
present on the built module and correctly raise the expected
"compiled without QT support" error, proving the binding reaches the
C++ layer end-to-end.
2026-07-24 05:19:08 +05:30