Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

PyQt Screen Capture

A screen capture utility that works with PyQt6, PySide6, PyQt5, PySide2, and PySide.

Features

  • Cross-platform (Windows, Linux, macOS, etc.)
  • Supports Python 2+
  • Automatically detects available Qt bindings
  • Memory-efficient screen capture using shared ndarrays in OpenCV-compatible HWC BGRX 8888 format
  • Simple generator-based interface

Installation

Make sure you have PyQt6, PySide6, PyQt5, PySide2, or PySide installed.

Then install pyqt-screen-capture:

pip install pyqt-screen-capture

Usage

Capture single frame

from pyqt_screen_capture import hwc_bgrx_8888_screen_capturer

screen_capturer = hwc_bgrx_8888_screen_capturer()

# Get next screen frame (as numpy array in HWC BGRX 8888 format)
frame = next(screen_capturer)

# Example: Convert to RGB and display with matplotlib
import matplotlib.pyplot as plt

plt.imshow(frame[:, :, [2, 1, 0]])  # Convert BGR to RGB
plt.show()

Continuous capture

import cv2

from pyqt_screen_capture import hwc_bgrx_8888_screen_capturer

for frame in hwc_bgrx_8888_screen_capturer():
    # Process frame (OpenCV, etc.)
    cv2.imshow('Screen Capture', frame[:, :, :3])  # Use BGR channels only
    key = cv2.waitKey()
    if key & 0xFF == ord('q'):
        break

Caveat

You MUST use the shared ndarray between yields, as the underlying buffer is freed afterward:

from pyqt_screen_capture import hwc_bgrx_8888_screen_capturer
screen_capturer = hwc_bgrx_8888_screen_capturer()
r1 = next(screen_capturer)
# OK to use r1 here
r2 = next(screen_capturer)
# OK to use r2 here, DO NOT USE r1 HERE!

Acknowledgments

This project modifies code automatically determining which Qt package to use from pyqtgraph, available under the MIT License

Contributing

Contributions are welcome! Please submit pull requests or open issues on GitHub.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Release files for pyqt-screen-capture 0.1.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyqt-screen-capture 0.1.0a1
File Size Uploaded
pyqt_screen_capture-0.1.0a1.tar.gz 4.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyqt-screen-capture 0.1.0a1
File Interpreter ABI Platform
pyqt_screen_capture-0.1.0a1-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 9.1 kB

Release files / pyqt_screen_capture-0.1.0a1.tar.gz

Download URL pyqt_screen_capture-0.1.0a1.tar.gz
Size 4.3 kB
Tags Source
SHA-256 checksum
How to use checksums
96c68ab888088326bf285e8605925ed32c7cd9899a7c4dc9a02e815434d29ea3
BLAKE2b-256 checksum
How to use checksums
45a39d561f322aee2db893b0e94c49f5f0d0d6a7b11ea5ce340da40cadf0a7c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.2

Release files / pyqt_screen_capture-0.1.0a1-py2.py3-none-any.whl

Download URL pyqt_screen_capture-0.1.0a1-py2.py3-none-any.whl
Size 4.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
0c6c3287fac69c14e68420dc2d93f4d3187b311bff07fd978a68616a65fa0e97
BLAKE2b-256 checksum
How to use checksums
3931469309f34a031b5852db58a2b106b1da0686e7ace93e8e939ec0f29a9606
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.2

Release history Release notifications | RSS feed

This release

0.1.0a1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page