Балуйтесь:
pip install pyqt5
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QPushButton, QMessageBox
from PyQt5.QtGui import QFont
from PyQt5.QtCore import Qt
import sys
class HumanCheckApp(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setWindowTitle("Тест на психотип")
self.setGeometry(100, 100, 400, 300)
self.setStyleSheet("background-color: #f0f0f0;")
layout = QVBoxLayout()
layout.setSpacing(20)
self.label = QLabel("Ты - человек?", self)
self.label.setFont(QFont("Arial", 14, QFont.Bold))
self.label.setStyleSheet("color: #333;")
self.label.setAlignment(Qt.AlignCenter)
layout.addWidget(self.label)
self.yes_button = HoverButton("Да", self)
self.yes_button.setFont(QFont("Arial", 12))
self.yes_button.setStyleSheet(self.get_button_style("#4CAF50", "#45A049"))
self.yes_button.hover_signal.connect(self.change_question)
self.yes_button.clicked.connect(self.yes_clicked)
layout.addWidget(self.yes_button)
self.no_button = QPushButton("Нет", self)
self.no_button.setFont(QFont("Arial", 12))
self.no_button.setStyleSheet(self.get_button_style("#F44336", "#D32F2F"))
self.no_button.clicked.connect(self.no_clicked)
layout.addWidget(self.no_button)
layout.setAlignment(Qt.AlignCenter)
self.setLayout(layout)
def get_button_style(self, color, hover_color):
return f"""
QPushButton {{
background-color: {color};
color: white;
border: none;
padding: 10px;
border-radius: 5px;
}}
QPushButton:hover {{
background-color: {hover_color};
}}
QPushButton:pressed {{
background-color: #333;
}}
"""
def change_question(self):
self.label.setText("СОСАЛ???")
def yes_clicked(self):
QMessageBox.information(self, "Ответ", "АХАХАХАХХХАХХАХА")
def no_clicked(self):
QMessageBox.warning(self, "Ответ", "Не ври мне, ответь честно!")
class HoverButton(QPushButton):
from PyQt5.QtCore import pyqtSignal
hover_signal = pyqtSignal()
def enterEvent(self, event):
self.hover_signal.emit()
super().enterEvent(event)
def show_warning():
warning = QMessageBox()
warning.setWindowTitle("Внимание!")
warning.setText(
"Этот тест направлен на определение вашего психотипа и выявление моральных травм.\n"
"Пожалуйста, ответьте честно!"
)
warning.setIcon(QMessageBox.Warning)
warning.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
response = warning.exec_()
if response == QMessageBox.Ok:
return True
else:
return False
def main():
app = QApplication(sys.argv)
if show_warning():
window = HumanCheckApp()
window.show()
sys.exit(app.exec_())
else:
sys.exit(0)
if __name__ == "__main__":
main()