@soja

В чём может быть ошибка?

надо написать маленький код: окно где предлагается выбрать количество цветов, а затем и сами цвета. Флаг с рандомными цветами получился, перекрасить при выборе цвета тоже, а вот именно это задание-нет. Сама проблема в том, что при выборе второго цвета, окно закрывется
import sys
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QInputDialog, QColorDialog
from PyQt5.QtGui import QPainter
import copy


class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
        self.draw = None
        self.base = [80, 80, 120, 30]

    def initUI(self):
        self.setGeometry(300, 300, 500, 500)
        self.setWindowTitle('Flag')

        self.button_1 = QPushButton(self)
        self.button_1.move(20, 40)
        self.button_1.setText("выбери кол-во цветов")
        self.button_1.clicked.connect(self.run)

    def run(self):
        i, okBtnPressed = QInputDialog.getInt(self, "введите число", "сколько цветов?", 2, 1, 10, 1)
        if okBtnPressed:
            self.draw = i
            self.flag = None

    def paintEvent(self, event):
        if self.draw:
            qp = QPainter()
            qp.begin(self)
            self.drawFlag(qp)
            qp.end()

    def drawFlag(self, qp):
        base = copy.copy(self.base)
        for i in range(self.draw):
            color = QColorDialog.getColor()
            if color.isValid():
                qp.setBrush(color.name())
                qp.drawRect(*base)
            base[1] += 30
        self.draw = None


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
BlackLacost
@BlackLacost
Используйте line-profiler, чтобы узнать самые слабые места в коде. И тогда уже будет понятно, где улучшать алгоритм. Я недавно благодаря ему улучишл скорость в 6 раз. Так как можно пробовать разные варианты именно в узком месте и сразу видеть результат.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
В задаче берутся два файла один с паролями другой с ключевыми словами ( не прикрепил, т.к ошибка в проверке пароля; с остальным все нормально)


и тут все нормально
Ответ написан
Ваш ответ на вопрос

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

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