import sys from enum import StrEnum from PyQt6.QtGui import QFont from PyQt6.QtWidgets import ( QApplication, QComboBox, QHBoxLayout, QLabel, QVBoxLayout, QWidget, ) class CatType(StrEnum): ORANGE = "one orange brain cell" VOID = "void" DUST = "dust kitty" class Window(QWidget): def __init__(self) -> None: super().__init__() self.setGeometry(*(500,) * 4) self.setWindowTitle("Окно") self.current_type = CatType.ORANGE self.create_combo() def create_combo(self) -> None: hbox = QHBoxLayout() label = QLabel("Select cat type:") label.setFont(QFont("Times", 15)) self.combo = QComboBox(self) for cat_type in CatType: self.combo.addItem(cat_type.capitalize()) self.combo.currentTextChanged.connect(self.combo_changed) hbox.addWidget(label) hbox.addWidget(self.combo) vbox = QVBoxLayout() self.label_result = QLabel( f"Current cat: {self.current_type.capitalize()}", ) self.label_result.setFont(QFont("Times", 15)) vbox = QVBoxLayout() vbox.addWidget(self.label_result) vbox.addLayout(hbox) self.setLayout(vbox) def combo_changed(self) -> None: self.current_type = CatType(self.combo.currentText().lower()) self.label_result.setText( f"Current cat: {self.current_type.capitalize()}", ) def main() -> None: app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec()) if __name__ == "__main__": main()