diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-08-02 08:52:31 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-08-04 09:52:45 +0200 |
commit | 39e65f1719b98d58408a5b7c0dddfb6664a41afb (patch) | |
tree | ce5cac95ea78b5e425fff122485556f39705ed08 /examples/multimedia/screencapture/windowlistmodel.py | |
parent | 40ec55c2606892848f8b4855d8e761cdf2e49656 (diff) |
Multimedia screen capture example: Add window capture
Port from qtmultimedia/3edff8e367b9060dd138a2b67cb87d2246a4a3e6.
Task-number: PYSIDE-2206
Change-Id: Ia702faf47946a0f656b1546b205dfb442cf2f56a
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
Diffstat (limited to 'examples/multimedia/screencapture/windowlistmodel.py')
-rw-r--r-- | examples/multimedia/screencapture/windowlistmodel.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/multimedia/screencapture/windowlistmodel.py b/examples/multimedia/screencapture/windowlistmodel.py new file mode 100644 index 000000000..079040ec2 --- /dev/null +++ b/examples/multimedia/screencapture/windowlistmodel.py @@ -0,0 +1,30 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +from PySide6.QtCore import QAbstractListModel, Qt, Slot +from PySide6.QtMultimedia import QWindowCapture + + +class WindowListModel(QAbstractListModel): + + def __init__(self, parent=None): + super().__init__(parent) + self._window_list = QWindowCapture.capturableWindows() + + def rowCount(self, QModelIndex): + return len(self._window_list) + + def data(self, index, role): + if role == Qt.DisplayRole: + window = self._window_list[index.row()] + return window.description() + return None + + def window(self, index): + return self._window_list[index.row()] + + @Slot() + def populate(self): + self.beginResetModel() + self._window_list = QWindowCapture.capturableWindows() + self.endResetModel() |