{"id":14976574,"url":"https://github.com/xdityagr/qcfx-python","last_synced_at":"2025-10-27T20:32:11.913Z","repository":{"id":255884341,"uuid":"850714180","full_name":"xdityagr/QCFX-Python","owner":"xdityagr","description":"QCFx is a Python library designed to add dynamic, real-time background blurring effects like Windows 10 to PyQt5/PySide2 applications.","archived":false,"fork":false,"pushed_at":"2024-09-10T11:53:04.000Z","size":819,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T08:07:00.547Z","etag":null,"topics":["blur-effect-library","custom-pyqt5-library","fx-engine","pyqt5-library","pyside2-library","python-library","window-blur","windows-10"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/QCFxPython/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xdityagr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-01T15:17:42.000Z","updated_at":"2025-01-20T13:45:00.000Z","dependencies_parsed_at":"2024-09-11T12:30:18.200Z","dependency_job_id":null,"html_url":"https://github.com/xdityagr/QCFX-Python","commit_stats":null,"previous_names":["xdityagr/qcfx-python"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdityagr%2FQCFX-Python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdityagr%2FQCFX-Python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdityagr%2FQCFX-Python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xdityagr%2FQCFX-Python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xdityagr","download_url":"https://codeload.github.com/xdityagr/QCFX-Python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238553325,"owners_count":19491406,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blur-effect-library","custom-pyqt5-library","fx-engine","pyqt5-library","pyside2-library","python-library","window-blur","windows-10"],"created_at":"2024-09-24T13:54:05.218Z","updated_at":"2025-10-27T20:32:11.451Z","avatar_url":"https://github.com/xdityagr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Alt text](https://github.com/xdityagr/QCFX-Python/blob/main/banner_qcfxpython.png?raw=true \"Banner Image\")\n\n---\n\n# QCFx - Dynamic Background Blurring for PyQt Applications\n\nQCFx is a Python library designed to add dynamic, real-time background blurring effects to PyQt5 applications. It provides various modes of operation, allowing for different levels of quality and performance to suit the needs of your application. The project leverages multi-threading to maintain smooth user experience even while performing complex image processing tasks.\n(This library is still under work)\n## Features\n\n- **Multiple Blurring Modes**: QCFx supports different levels of blurring quality, allowing you to choose between ultra, medium, and low-quality blurring depending on your application's needs.\n- **Window Movement Monitoring**: QCFx can detect when a window is being moved and update the background blur dynamically.\n- **Desktop Wallpaper Monitoring**: Automatically updates the blur effect when the desktop wallpaper changes.\n- **Other Windows State Monitoring**: Detects and responds to changes in the state of other windows (e.g., minimized or restored).\n- **Settings Persistence**: QCFx settings are saved to a JSON file and can be reloaded or modified as needed.\n- **Customizable UI**: The blurred background can be styled using custom CSS stylesheets for a more tailored look.\n\n## Installation\n\nTo use QCFx in your project, ensure you have the following dependencies installed:\n\n```bash\npip install QCFxPython\n```\n\n## Usage\n\nBelow is a basic example of how to integrate QCFx into your PyQt5 application.\n\n### Example\n\n```python\nfrom PySide2.QtCore import *\nfrom PySide2.QtGui import *\nfrom PySide2.QtWidgets import *\nimport sys\nfrom qcfx import QCFx_Blur, QCFx\nfrom ui_testWindow import Ui_MainWindow\n\nclass MainWindow(QMainWindow):\n    def __init__(self):\n        super().__init__()\n        self.ui = Ui_MainWindow()\n        self.ui.setupUi(self)\n        \n        self.qcfx = QCFx()\n        self.blur = QCFx_Blur(self, mode=self.qcfx.MODE_WINDOW_S)\n        \n        self.ui.body.setStyleSheet('background-color:rgba(0,0,0,0);')\n        self.ui.overlay.setStyleSheet('background-color:rgba(0,0,0,0);')\n\nif __name__ == \"__main__\":\n    app = QApplication(sys.argv)\n    window = MainWindow()\n    window.show()\n    sys.exit(app.exec_())\n```\n\n### Modes\n\nQCFx provides several predefined modes for blurring:\n\n- `MODE_DESKTOPONLY_U`: Ultra-quality blurring of the desktop background only.\n- `MODE_DESKTOPONLY_S`: Medium-quality blurring of the desktop background only.\n- `MODE_DESKTOPONLY_L`: Low-quality blurring of the desktop background only.\n- `MODE_WINDOW_U`: Ultra-quality blurring that includes window monitoring.\n- `MODE_WINDOW_S`: Medium-quality blurring that includes window monitoring.\n- `MODE_WINDOW_L`: Low-quality blurring that includes window monitoring.\n\n### Settings\n\nQCFx allows you to configure various settings via a JSON file stored in the AppData directory. The default settings include:\n\n```json\n{\n    \"blurScalingFactor\": 2,\n    \"recursiveFixedUpdate\": false,\n    \"updateInterval\": 500,\n    \"windowStateMonitoring\": true,\n    \"windowMoveMonitoring\": true,\n    \"otherWindowsStateMonitoring\": true,\n    \"desktopMonitoring\": true,\n    \"blurringFunction\": 2,\n    \"blurRadius\": 40,\n    \"blurLayerStylesheet\": \"background-color:none; border-radius:8px; padding:2px;\",\n    \"showWindowTitlebar\": true,\n    \"showWindowBorders\": true\n}\n```\n\n### Methods\n\n#### `applySettings_fromMode(mode)`\nApply settings based on the selected mode (e.g., `MODE_WINDOW_S`).\n\n#### `applySetting(key, value)`\nApply a specific setting dynamically during runtime.\n\n#### `reloadSettings()`\nReload settings from the JSON file.\n\n## Customization\n\nQCFx provides several points of customization, including:\n\n- **Stylesheet Customization**: Modify the appearance of the blur effect by changing the `blurLayerStylesheet` setting.\n- **Blurring Function**: Choose between different blurring algorithms (Lanczos, Bilinear, Nearest Neighbor) by adjusting the `blurringFunction` setting.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a pull request or open an issue if you encounter any bugs or have suggestions for new features.\n\n## License\n\nThis project is licensed under the MIT License. See the `LICENSE` file for more details.\n\n## Acknowledgements\n\n- The project makes use of the PySide2 library for the PyQt5 framework.\n- Image processing is handled by the Pillow library.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxdityagr%2Fqcfx-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxdityagr%2Fqcfx-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxdityagr%2Fqcfx-python/lists"}