QCFx is a Python library designed to add dynamic, real-time background blurring effects like Windows 10 to PyQt5/PySide2 applications.
GPL-3.0 License
QCFx 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. (This library is still under work)
To use QCFx in your project, ensure you have the following dependencies installed:
pip install QCFxPython
Below is a basic example of how to integrate QCFx into your PyQt5 application.
from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *
import sys
from qcfx import QCFx_Blur, QCFx
from ui_testWindow import Ui_MainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.qcfx = QCFx()
self.blur = QCFx_Blur(self, mode=self.qcfx.MODE_WINDOW_S)
self.ui.body.setStyleSheet('background-color:rgba(0,0,0,0);')
self.ui.overlay.setStyleSheet('background-color:rgba(0,0,0,0);')
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
QCFx provides several predefined modes for blurring:
MODE_DESKTOPONLY_U
: Ultra-quality blurring of the desktop background only.MODE_DESKTOPONLY_S
: Medium-quality blurring of the desktop background only.MODE_DESKTOPONLY_L
: Low-quality blurring of the desktop background only.MODE_WINDOW_U
: Ultra-quality blurring that includes window monitoring.MODE_WINDOW_S
: Medium-quality blurring that includes window monitoring.MODE_WINDOW_L
: Low-quality blurring that includes window monitoring.QCFx allows you to configure various settings via a JSON file stored in the AppData directory. The default settings include:
{
"blurScalingFactor": 2,
"recursiveFixedUpdate": false,
"updateInterval": 500,
"windowStateMonitoring": true,
"windowMoveMonitoring": true,
"otherWindowsStateMonitoring": true,
"desktopMonitoring": true,
"blurringFunction": 2,
"blurRadius": 40,
"blurLayerStylesheet": "background-color:none; border-radius:8px; padding:2px;",
"showWindowTitlebar": true,
"showWindowBorders": true
}
applySettings_fromMode(mode)
Apply settings based on the selected mode (e.g., MODE_WINDOW_S
).
applySetting(key, value)
Apply a specific setting dynamically during runtime.
reloadSettings()
Reload settings from the JSON file.
QCFx provides several points of customization, including:
blurLayerStylesheet
setting.blurringFunction
setting.Contributions 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.
This project is licensed under the MIT License. See the LICENSE
file for more details.