Fais en sorte que ce code, le path de l'image est "reticule/nom_image" ou "nom_image" est la valeur du json. Fais aussi en sorte que si active == 0 rien ne s'affiche et le "scale_factor" est agl au multiplicateur du fichier json. Si possible fais aussi en sorte que les enchainement de touche soit aussi compter en avant plan dans le sens que si je suis sur une autre app que le porogramme et que je fais controle + g par exemple le programme se ferme quand meme : from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow, QDesktopWidget
from PyQt5.QtGui import QPixmap, QPainter, QImage
from PyQt5.QtCore import Qt, QRect
import sys
import os

class TransparentWindow(QMainWindow):
    def __init__(self, image_path, scale_factor=1.0):
        super().__init__()

        # Configurer la fenêtre principale
        self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.WindowTransparentForInput)
        self.setAttribute(Qt.WA_TranslucentBackground, True)

        # Charger l'image
        self.pixmap = QPixmap(image_path)
        self.scale_factor = scale_factor
        self.rescale_image()

        # Configurer le QLabel pour afficher l'image redimensionnée
        self.label = QLabel(self)
        self.label.setPixmap(self.scaled_pixmap)
        self.label.setGeometry(QRect(0, 0, self.scaled_pixmap.width(), self.scaled_pixmap.height()))

        # Ajuster la taille de la fenêtre à l'image redimensionnée
        self.resize(self.scaled_pixmap.width(), self.scaled_pixmap.height())

        # Positionner la fenêtre au centre de l'écran
        self.center_window()

        # Configurer le fond transparent
        self.setAttribute(Qt.WA_TranslucentBackground)

    def rescale_image(self):
        # Redimensionner l'image selon le facteur d'échelle
        new_width = int(self.pixmap.width() * self.scale_factor)
        new_height = int(self.pixmap.height() * self.scale_factor)
        self.scaled_pixmap = self.pixmap.scaled(new_width, new_height, Qt.KeepAspectRatio, Qt.SmoothTransformation)

    def center_window(self):
        # Obtenir la taille de l'écran
        screen_rect = QDesktopWidget().screenGeometry()
        screen_width = screen_rect.width()
        screen_height = screen_rect.height()

        # Calculer la position centrale
        x = (screen_width - self.width()) // 2
        y = (screen_height - self.height()) // 2

        # Positionner la fenêtre
        self.move(x, y)

    def keyPressEvent(self, event):
        # Écouter les événements de clavier pour quitter le programme
        if event.key() == Qt.Key_F and event.modifiers() & Qt.ControlModifier:
            self.close()
        elif event.key() == Qt.Key_G and event.modifiers() & Qt.ControlModifier:
            self.close()

    def paintEvent(self, event):
        painter = QPainter(self)
        painter.setCompositionMode(QPainter.CompositionMode_Source)
        painter.drawPixmap(0, 0, self.scaled_pixmap)

if __name__ == "__main__":
    app = QApplication(sys.argv)

    # Chemin de l'image
    script_dir = os.path.dirname(os.path.abspath(__file__))
    image_path = os.path.join(script_dir, 'reticule', '1022053-200.png')

    # Vérifier que le fichier existe
    if not os.path.isfile(image_path):
        print(f"Le fichier {image_path} n'existe pas.")
        sys.exit(1)

    # Définir le facteur d'échelle (par exemple, 1.5 pour 150% de la taille d'origine)
    scale_factor = 0.4  # Modifiez cette valeur pour changer la taille du réticule

    window = TransparentWindow(image_path, scale_factor)
    window.show()

    sys.exit(app.exec_())