import sys

from PyQt6.QtCore import QSize
from PyQt6.QtGui import QIcon
from PyQt6.QtWidgets import (
    QApplication,
    QCheckBox,
    QHBoxLayout,
    QLabel,
    QVBoxLayout,
    QWidget,
)

ICON_SIZE = 100


class Window(QWidget):
    def __init__(self) -> None:
        super().__init__()
        self.setGeometry(200, 200, 400, 300)
        self.setWindowTitle("Окно")
        self.create_radio()

    def create_radio(self) -> None:
        hbox = QHBoxLayout()

        self.check1 = QCheckBox("Cat 1")
        self.check1.setIcon(QIcon("cat1.jpg"))
        self.check1.setIconSize(QSize(ICON_SIZE, ICON_SIZE))
        self.check1.toggled.connect(self.radio_selected)

        self.check2 = QCheckBox("Cat 2")
        self.check2.setIcon(QIcon("cat2.jpg"))
        self.check2.setIconSize(QSize(ICON_SIZE, ICON_SIZE))
        self.check2.toggled.connect(self.radio_selected)

        hbox.addWidget(self.check1)
        hbox.addWidget(self.check2)

        vbox = QVBoxLayout()

        self.label = QLabel("You haven't chosen anything")

        vbox.addWidget(self.label)
        vbox.addLayout(hbox)
        self.setLayout(vbox)

    def radio_selected(self) -> None:
        text = "You have chosen "
        if self.check1.isChecked():
            text += self.check1.text().lower() + ", "
        if self.check2.isChecked():
            text += self.check2.text().lower()
        if not any((self.check1.isChecked(), self.check2.isChecked())):
            text = "You haven't chosen anything"
        text = text.removesuffix(", ")
        self.label.setText(text)


def main() -> None:
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec())


if __name__ == "__main__":
    main()