[PATCH v2] py: cam: Convert to PyQt6
David Plowman
david.plowman at raspberrypi.com
Tue Aug 13 10:29:37 CEST 2024
Hi Tomi
Well, I guess if we don't think there's a real problem then it's fine,
though I assume someone somewhere must be using it! I suppose on a Pi
folks have lots of other apps and Qt apps to run anyway.
Thanks
David
On Tue, 13 Aug 2024 at 09:08, Tomi Valkeinen
<tomi.valkeinen at ideasonboard.com> wrote:
>
> Hi David,
>
> On 13/08/2024 11:05, David Plowman wrote:
> > Hi everyone
> >
> > Could I just put in a vote for maintaining backward compatibility with
> > PyQt5 for the time being? By all means deprecate it, put in a warning,
> > but please don't break it _yet_. There are many platforms still
> > running PyQt5 (the latest Raspberry Pi OS based on Debian Bookworm has
> > PyQt5), and we've found many people have had problems upgrading PyQt
> > versions and then discovering OpenCV gets upset and doesn't work any
> > more. We ship versions in apt that we guarantee work properly
> > together, and I wouldn't like to tell people "sorry, you've got to
> > find versions for yourself that play nicely, or build everything
> > yourself from source. Only building some of this stuff can be
> > non-trivial. Good luck."
>
> I hear you, but this is only about the cam.py example application in
> libcamera's source tree, and only the qt and qtgl renderers of that example.
>
> I don't think that example app is distributed anywhere, or, if I had to
> guess, even used by anyone.
>
> Tomi
>
> >
> > Thanks
> >
> > David
> >
> > On Mon, 12 Aug 2024 at 18:27, Tomi Valkeinen
> > <tomi.valkeinen at ideasonboard.com> wrote:
> >>
> >> Qt5 is now end of life. The libcamera 'qcam' application has removed
> >> support for Qt5, and updated to Qt6.
> >>
> >> Update the python 'cam' application accordingly to Qt6.
> >>
> >> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
> >> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> >> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> >> ---
> >> v2:
> >> - Added RB tags
> >> - Updated the commit description
> >>
> >> src/py/cam/cam_qt.py | 6 +++---
> >> src/py/cam/cam_qtgl.py | 12 ++++++------
> >> 2 files changed, 9 insertions(+), 9 deletions(-)
> >>
> >> diff --git a/src/py/cam/cam_qt.py b/src/py/cam/cam_qt.py
> >> index c1723b44..22d8c4da 100644
> >> --- a/src/py/cam/cam_qt.py
> >> +++ b/src/py/cam/cam_qt.py
> >> @@ -2,7 +2,7 @@
> >> # Copyright (C) 2022, Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
> >>
> >> from helpers import mfb_to_rgb
> >> -from PyQt5 import QtCore, QtGui, QtWidgets
> >> +from PyQt6 import QtCore, QtGui, QtWidgets
> >> import libcamera as libcam
> >> import libcamera.utils
> >> import sys
> >> @@ -63,10 +63,10 @@ class QtRenderer:
> >> self.buf_mmap_map = buf_mmap_map
> >>
> >> def run(self):
> >> - camnotif = QtCore.QSocketNotifier(self.cm.event_fd, QtCore.QSocketNotifier.Read)
> >> + camnotif = QtCore.QSocketNotifier(self.cm.event_fd, QtCore.QSocketNotifier.Type.Read)
> >> camnotif.activated.connect(lambda _: self.readcam())
> >>
> >> - keynotif = QtCore.QSocketNotifier(sys.stdin.fileno(), QtCore.QSocketNotifier.Read)
> >> + keynotif = QtCore.QSocketNotifier(sys.stdin.fileno(), QtCore.QSocketNotifier.Type.Read)
> >> keynotif.activated.connect(lambda _: self.readkey())
> >>
> >> print('Capturing...')
> >> diff --git a/src/py/cam/cam_qtgl.py b/src/py/cam/cam_qtgl.py
> >> index 6cfbd347..35b4b06b 100644
> >> --- a/src/py/cam/cam_qtgl.py
> >> +++ b/src/py/cam/cam_qtgl.py
> >> @@ -1,8 +1,8 @@
> >> # SPDX-License-Identifier: GPL-2.0-or-later
> >> # Copyright (C) 2022, Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
> >>
> >> -from PyQt5 import QtCore, QtWidgets
> >> -from PyQt5.QtCore import Qt
> >> +from PyQt6 import QtCore, QtWidgets
> >> +from PyQt6.QtCore import Qt
> >>
> >> import math
> >> import os
> >> @@ -142,10 +142,10 @@ class QtRenderer:
> >> self.window = window
> >>
> >> def run(self):
> >> - camnotif = QtCore.QSocketNotifier(self.state.cm.event_fd, QtCore.QSocketNotifier.Read)
> >> + camnotif = QtCore.QSocketNotifier(self.state.cm.event_fd, QtCore.QSocketNotifier.Type.Read)
> >> camnotif.activated.connect(lambda _: self.readcam())
> >>
> >> - keynotif = QtCore.QSocketNotifier(sys.stdin.fileno(), QtCore.QSocketNotifier.Read)
> >> + keynotif = QtCore.QSocketNotifier(sys.stdin.fileno(), QtCore.QSocketNotifier.Type.Read)
> >> keynotif.activated.connect(lambda _: self.readkey())
> >>
> >> print('Capturing...')
> >> @@ -175,8 +175,8 @@ class MainWindow(QtWidgets.QWidget):
> >> def __init__(self, state):
> >> super().__init__()
> >>
> >> - self.setAttribute(Qt.WA_PaintOnScreen)
> >> - self.setAttribute(Qt.WA_NativeWindow)
> >> + self.setAttribute(Qt.WidgetAttribute.WA_PaintOnScreen)
> >> + self.setAttribute(Qt.WidgetAttribute.WA_NativeWindow)
> >>
> >> self.state = state
> >>
> >> --
> >> 2.43.0
> >>
>
More information about the libcamera-devel
mailing list