Задать вопрос

Как навсегда изменить цвет кнопки при нажатии в Python?

Я написал код с использованием Qt Designer, после чего в командной строке через pyuic 5 -x name.ui -o name.py сделал из расширения ui в py. По сути сократил достаточно времени. На руках у меня код:
Код

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(400, 192)
        MainWindow.setStyleSheet("background-color: rgb(238, 238, 238);")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(120, 80, 141, 51))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.pushButton.setFont(font)
        self.pushButton.setStyleSheet("QPushButton {\n"
                                      "background-color: rgb(255, 0, 0);\n"
                                      "}\n"
                                      "QPushButton:hover {\n"
                                      "background-color: rgb(222, 0, 0);\n"
                                      "}\n"
                                      "QPushButton:pressed {\n"
                                      "background-color: rgb(200, 0, 0);\n"
                                      "}")
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Тестовая программа"))
        self.pushButton.setText(_translate("MainWindow", "Start"))


if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())


При запуске он выводит:
Вывод

63b48a9eb49dd883336456.png

Это тестовая программа, т.к. работать с графикой сильно не умею, учусь. В дальнейшем у меня будут около 10 кнопок которые должны выполнять следующие действия:

  • При нажатии на кнопку (в данном случае start красного цвета), кнопка должна поменять цвет навсегда на зеленый, при втором клике она должна поменять цвет на желтый. В кратце при каждом клике она меняет определенный цвет, и ставит его по умолчанию.

Кто поможет с задачкой очень сильно благодарю. Уже 2 час в интернете и ютубе рою, ничего...
  • Вопрос задан
  • 622 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Свяжи обработчик событий с кнопкой.
Заведи глобальную переменную, которая считает, сколько раз была нажата кнопка.
В обработчике событий читай эту переменную, увеличь её на 1, в зависимости от значения вызывай self.pushButton.setStyleSheet() с разными стилями.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы