Написать рандомно на кнопке слово CLICK

Проблема, в том, что я хочу сделать чтобы рандомно на каждой кнопке отображалось слово CLICK.
И если на кнопку со словом CLICK нажали, то она засветилась зелёным, ну а если нажали на кнопку БЕЗ слова CLICK, то она подсвечивалась красным.

Помогите пожалуйста, я пока что просто плохо знаю библиотеку PyQt5. И не знаю все команды.

Пример кода:

###
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout,     
QHBoxLayout, QPushButton, QMessageBox
from random import*
###
class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Fast Clicker')
        self.resize(800,500)
    
        button1 = QPushButton()
        button2 = QPushButton()
        button3 = QPushButton()
        button4 = QPushButton()
    
        h_layout = QHBoxLayout()
        h_layout.addWidget(button1)
        h_layout.addWidget(button2)
        h_layout.addWidget(button3)
        h_layout.addWidget(button4)

        main_layout = QVBoxLayout(self)
        main_layout.addLayout(h_layout)
###
Stylesheet = '''
QWidget {
    background-color:rgb(100,200, 255);
}
QPushButton {
    background-color:yellow;
    max-width:  96px;
    max-height: 125px;   
    border: 8px solid rgb(80, 80, 255);
}
QPushButton:hover:pressed {
    background-color: red;
}

'''
###
if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet(Stylesheet) 
    ex = MainWindow()
    ex.show()
    sys.exit(app.exec_())

Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так:

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, \
    QLabel, QVBoxLayout, QHBoxLayout, QPushButton, QMessageBox
from random import choice


class PushButton(QPushButton):
    def __init__(self, i, parent=None):
        super().__init__(parent)
        
        self.listName = ['CLICK', '']
        self.setText(choice(self.listName))
        self.setObjectName(f'button{i}')


class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Fast Clicker')
        self.resize(800, 500)
        
        self.listButton = []
        
        h_layout = QHBoxLayout()
        for i in range(4):
            button = PushButton(i, self)
            button.clicked.connect(lambda ch, btn=button: self.button_clicked(btn))
            self.listButton.append(button)
            h_layout.addWidget(button)

        main_layout = QVBoxLayout(self)
        main_layout.addLayout(h_layout)
        
    def button_clicked(self, btn):
        for button in self.listButton:
            if button.objectName() == btn.objectName():
                if button.text() == 'CLICK':
                    button.setStyleSheet('background-color: green;') 
                else:
                    button.setStyleSheet('background-color: red;')
            else:
                button.setStyleSheet('background-color: #D98C00;')


Stylesheet = '''
QWidget {
    background-color:rgb(100,200, 255);
}
QPushButton {
    background-color: #D98C00;
    min-width:  96px;
    max-width:  96px;
    min-height: 96px;
    max-height: 96px;
    border-radius: 48px;        /* круглый */
    border: 2px solid #09009B;
    font-size: 24px;
}
QPushButton:hover:pressed {
    background-color: red;
    color: #fff;    
}
QPushButton:hover {
    background-color: #0ff;
    border: 2px solid #FFA6D5;
}
'''


if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    app.setStyleSheet(Stylesheet) 
    ex = MainWindow()
    ex.show()
    sys.exit(app.exec_())

введите сюда описание изображения

введите сюда описание изображения

→ Ссылка