Example #1
0
class Example(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.timer = QTimer()
        self.timer.timeout.connect(self.tick)
        self.days = 0
        self.totalPapers = 0

        self.perfect = {
            '1': [[6, 2], [1, 4, 5, 8], [3, 7]],
            '2': [[1, 2, 8], [6, 7], [3, 4, 5]],
            '3': [[4, 5, 6, 1, 3], [8], [2, 7]],
            '4': [[7], [], [1, 2, 3, 4, 5, 6, 8]],
            '5': [[1, 7], [8, 2], [3, 4, 5, 6]],
            '6': [[2, 8, 1, 7], [3], [4, 5, 6]],
            '7': [[6, 3, 7, 4, 5], [1], [2, 8]],
            '8': [[8, 2, 6, 4], [1, 5], [3, 7]]
        }
        self.levelOfKnowledge = 0
        self.setFont(QtGui.QFont("Bahnschrift Light SemiCondensed", 20))
        self.setMouseTracking(True)
        self.setWindowTitle('Game maker')
        self.setGeometry(10, 10, 1024, 768)
        self.setFixedSize(1024, 768)
        palette = QPalette()
        img = QImage('mainWindow.png')
        scaled = img.scaled(self.size(),
                            Qt.KeepAspectRatioByExpanding,
                            transformMode=Qt.SmoothTransformation)
        palette.setBrush(QPalette.Window, QBrush(scaled))
        self.setPalette(palette)
        pixmap = QPixmap('shopButton.png')
        self.shopButton = QLabel('', self)
        self.shopButton.setPixmap(pixmap)
        self.shopButton.setMouseTracking(True)
        self.shopButton.move(500, 7)
        pixmap = QPixmap('devButton.png')
        self.devButton = QLabel('', self)
        self.devButton.setMouseTracking(True)
        self.devButton.setPixmap(pixmap)
        self.devButton.move(700, 7)
        self.cash = 100
        self.money = QLabel("Деньги:\n    100$", self)
        self.money.move(10, 7)
        self.subs = QLabel("Фанаты:\n   0", self)
        self.subs.move(140, 7)
        self.date = QLabel("Дни:\n     0", self)
        self.date.move(280, 7)
        self.table = QLabel(
            'Создайте свою первую игру! \n  \nЗаработано за все дни: \n 0',
            self)
        self.table.move(150, 200)
        self.table.setStyleSheet(
            'border-style: solid; border-width: 3px; border-color: black;'
            'background-color: rgb(207, 162, 98);')
        self.nalog = QLabel("До налога: 30 \n Налог: 0", self)
        self.nalog.move(800, 105)
        self.nalog.setStyleSheet(
            'border-style: solid; border-width: 3px; border-color: black;'
            'background-color: rgb(207, 162, 98);')
        self.shop = QWidget(self)
        self.shop.move(10000, 10000)
        self.shop.resize(400, 353)
        self.shop.setMouseTracking(True)
        self.shopItem1 = QLabel('', self.shop)
        self.shopItem1.setPixmap(QPixmap('shopItem1.png'))
        self.shopItem1.move(10, 10)
        self.shopItem1.setMouseTracking(True)
        self.shopItem2 = QLabel('', self.shop)
        self.shopItem2.setPixmap(QPixmap('shopItem22.png'))
        self.shopItem2.move(200, 10)
        self.shopItem2.setMouseTracking(True)
        self.shopItem3 = QLabel('', self.shop)
        self.shopItem3.setPixmap(QPixmap('shopItem4.png'))
        self.shopItem3.move(10, 250)
        self.shopItem3.setMouseTracking(True)
        self.shopItem4 = QLabel('', self.shop)
        self.shopItem4.setPixmap(QPixmap('shopItem4.png'))
        self.shopItem4.move(200, 250)
        self.shopItem4.setMouseTracking(True)
        self.shopExit = QLabel('', self.shop)
        self.shopExit.setPixmap(QPixmap('shopExit.png'))
        self.shopExit.move(360, 10)
        self.shopExit.setMouseTracking(True)
        self.shop.setStyleSheet(
            'border-style: solid; border-width: 3px; border-color: black;'
            'background-color: rgb(207, 162, 98);')
        self.shopOn = False

        self.devPage1 = QWidget(self)
        self.devPage1.move(10000, 10000)
        self.devPage1.resize(600, 330)
        self.devPage1.setMouseTracking(True)
        self.devPage1.setStyleSheet(
            'border-style: solid; border-width: 3px; border-color: black;'
            'background-color: rgb(207, 162, 98);')
        self.theme = 0
        self.style = 0
        self.type = 0
        self.platform = 0
        self.styles = QGroupBox('Жанры', self.devPage1)
        self.styles.move(10, 10)
        self.styles.setMouseTracking(True)
        self.style1 = QRadioButton('Приключения', self.styles)
        self.style1.move(10, 20)
        self.style1.toggle()
        self.style2 = QRadioButton('Шутер', self.styles)
        self.style2.move(100, 20)
        self.style3 = QRadioButton('Слэшэр', self.styles)
        self.style3.move(10, 45)
        self.style4 = QRadioButton('MMO', self.styles)
        self.style4.move(100, 45)
        self.style5 = QRadioButton('MOBA', self.styles)
        self.style5.move(10, 70)
        self.style6 = QRadioButton('RPG', self.styles)
        self.style6.move(100, 70)
        self.style7 = QRadioButton('Симулятор', self.styles)
        self.style7.move(10, 95)
        self.style8 = QRadioButton('Кооператив', self.styles)
        self.style8.move(100, 95)
        self.styles.setStyleSheet(
            'border-style: solid; border-width: 1px; border-color: black;')
        self.styles.setFont(QtGui.QFont("Bahnschrift Light SemiCondensed", 12))
        self.style1.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.style2.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.style3.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.style4.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.style5.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.style6.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.style7.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.style8.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.style1.adjustSize()
        self.style2.adjustSize()
        self.style3.adjustSize()
        self.style4.adjustSize()
        self.style5.adjustSize()
        self.style6.adjustSize()
        self.style7.adjustSize()
        self.style8.adjustSize()
        self.styles.adjustSize()

        self.themes = QGroupBox('Темы', self.devPage1)
        self.themes.move(300, 10)
        self.themes.setMouseTracking(True)
        self.theme1 = QRadioButton('Космос', self.themes)
        self.theme1.move(10, 20)
        self.theme1.toggle()
        self.theme2 = QRadioButton('Вестерн', self.themes)
        self.theme2.move(120, 20)
        self.theme3 = QRadioButton('Фэнтэзи', self.themes)
        self.theme3.move(10, 45)
        self.theme4 = QRadioButton('Ферма', self.themes)
        self.theme4.move(120, 45)
        self.theme5 = QRadioButton('Детектив', self.themes)
        self.theme5.move(10, 70)
        self.theme6 = QRadioButton('Война', self.themes)
        self.theme6.move(120, 70)
        self.theme7 = QRadioButton('Средневековье', self.themes)
        self.theme7.move(10, 95)
        self.theme8 = QRadioButton('Будущее', self.themes)
        self.theme8.move(120, 95)
        self.themes.setStyleSheet(
            'border-style: solid; border-width: 1px; border-color: black;')
        self.themes.setFont(QtGui.QFont("Bahnschrift Light SemiCondensed", 12))
        self.theme1.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.theme2.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.theme3.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.theme4.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.theme5.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.theme6.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.theme7.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.theme8.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.theme1.adjustSize()
        self.theme2.adjustSize()
        self.theme3.adjustSize()
        self.theme4.adjustSize()
        self.theme5.adjustSize()
        self.theme6.adjustSize()
        self.theme7.adjustSize()
        self.theme8.adjustSize()
        self.themes.adjustSize()

        self.platforms = QGroupBox('Платформы', self.devPage1)
        self.platforms.move(10, 150)
        self.platforms.setMouseTracking(True)
        self.platform1 = QRadioButton('MacOs', self.platforms)
        self.platform1.move(10, 20)
        self.platform1.toggle()
        self.platform2 = QRadioButton('Android', self.platforms)
        self.platform2.move(120, 20)
        self.platform3 = QRadioButton('IOS', self.platforms)
        self.platform3.move(10, 45)
        self.platform4 = QRadioButton('PC', self.platforms)
        self.platform4.move(120, 45)
        self.platforms.setStyleSheet(
            'border-style: solid; border-width: 1px; border-color: black;')
        self.platforms.setFont(
            QtGui.QFont("Bahnschrift Light SemiCondensed", 12))
        self.platform1.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.platform2.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.platform3.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.platform4.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.platform1.adjustSize()
        self.platform2.adjustSize()
        self.platform3.adjustSize()
        self.platform4.adjustSize()
        self.platforms.adjustSize()

        self.types = QGroupBox('Тип', self.devPage1)
        self.types.move(300, 150)
        self.types.setMouseTracking(True)
        self.type1 = QRadioButton('Инди', self.types)
        self.type1.move(10, 20)
        self.type1.toggle()
        self.type2 = QRadioButton('A', self.types)
        self.type2.move(120, 20)
        self.type3 = QRadioButton('AA', self.types)
        self.type3.move(10, 45)
        self.type4 = QRadioButton('AAA', self.types)
        self.type4.move(120, 45)
        self.types.setStyleSheet(
            'border-style: solid; border-width: 1px; border-color: black;')
        self.types.setFont(QtGui.QFont("Bahnschrift Light SemiCondensed", 12))
        self.type1.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.type2.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.type3.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.type4.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.type1.adjustSize()
        self.type2.adjustSize()
        self.type3.adjustSize()
        self.type4.adjustSize()
        self.types.adjustSize()

        self.pushToDev = QPushButton('Начать', self.devPage1)
        self.pushToDev.setMouseTracking(True)
        self.pushToDev.move(280, 270)
        self.pushToDev.setStyleSheet(
            'border-style: solid; border-width: 1px; border-color: black;'
            'background-color: rgb(207, 162, 198);')
        self.pushToDev.clicked.connect(self.showDevPage2)

        self.devPage2 = QWidget(self)
        self.devPage2.move(10000, 10000)
        self.devPage2.resize(600, 330)
        self.devPage2.setMouseTracking(True)
        self.devPage2.setStyleSheet(
            'border-style: solid; border-width: 3px; border-color: black;'
            'background-color: rgb(207, 162, 98);')
        self.devPage1On = False
        self.devPage2On = False

        self.levelOne = QGroupBox('Знания I', self.devPage2)
        self.levelOne.move(10, 10)
        self.levelOne.setMouseTracking(True)
        self.techno11 = QCheckBox('2D(5$)', self.levelOne)
        self.techno11.move(10, 20)
        self.techno11.setMouseTracking(True)
        self.techno12 = QCheckBox('6 Bit Sound(15$)', self.levelOne)
        self.techno12.move(150, 20)
        self.techno13 = QCheckBox('HD(25$)', self.levelOne)
        self.techno13.move(10, 80)
        self.techno14 = QCheckBox('C++(35$)', self.levelOne)
        self.techno14.move(150, 80)
        self.levelOne.setStyleSheet(
            'border-style: solid; border-width: 1px; border-color: black;')
        self.levelOne.setFont(
            QtGui.QFont("Bahnschrift Light SemiCondensed", 12))
        self.techno11.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno12.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno13.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno14.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno14.adjustSize()
        self.techno13.adjustSize()
        self.techno12.adjustSize()
        self.techno11.adjustSize()
        self.levelOne.adjustSize()
        self.techno12.setMouseTracking(True)
        self.techno13.setMouseTracking(True)
        self.techno14.setMouseTracking(True)

        self.levelTwo = QGroupBox('Знания II', self.devPage2)
        self.levelTwo.move(10, 170)
        self.levelTwo.setMouseTracking(True)
        self.techno21 = QCheckBox('3D(100$)', self.levelTwo)
        self.techno21.move(10, 20)
        self.techno21.setMouseTracking(True)
        self.techno22 = QCheckBox('8 Bit Sound(300$)', self.levelTwo)
        self.techno22.move(150, 20)
        self.techno23 = QCheckBox('Full HD(500$)', self.levelTwo)
        self.techno23.move(10, 80)
        self.techno24 = QCheckBox('C(1000$)', self.levelTwo)
        self.techno24.move(150, 80)
        self.levelTwo.setStyleSheet(
            'border-style: solid; border-width: 1px; border-color: black;')
        self.levelTwo.setFont(
            QtGui.QFont("Bahnschrift Light SemiCondensed", 12))
        self.techno21.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno22.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno23.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno24.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno24.adjustSize()
        self.techno23.adjustSize()
        self.techno22.adjustSize()
        self.techno21.adjustSize()
        self.levelTwo.adjustSize()
        self.techno22.setMouseTracking(True)
        self.techno23.setMouseTracking(True)
        self.techno24.setMouseTracking(True)

        self.levelThree = QGroupBox('Знания III', self.devPage2)
        self.levelThree.move(280, 10)
        self.levelThree.setMouseTracking(True)
        self.techno31 = QCheckBox('4D(3500$)', self.levelThree)
        self.techno31.move(10, 20)
        self.techno31.setMouseTracking(True)
        self.techno32 = QCheckBox('16 Bit Sound(7000$)', self.levelThree)
        self.techno32.move(150, 20)
        self.techno33 = QCheckBox('2K HD(13000$)', self.levelThree)
        self.techno33.move(10, 80)
        self.techno34 = QCheckBox('C#(20000$)', self.levelThree)
        self.techno34.move(150, 80)
        self.levelThree.setStyleSheet(
            'border-style: solid; border-width: 1px; border-color: black;')
        self.levelThree.setFont(
            QtGui.QFont("Bahnschrift Light SemiCondensed", 12))
        self.techno31.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno32.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno33.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno34.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno34.adjustSize()
        self.techno33.adjustSize()
        self.techno32.adjustSize()
        self.techno31.adjustSize()
        self.techno31.setMouseTracking(True)
        self.techno32.setMouseTracking(True)
        self.techno34.setMouseTracking(True)
        self.techno33.setMouseTracking(True)
        self.levelThree.adjustSize()

        self.timeToEnd = 0
        self.timeDev = False

        self.levelFour = QGroupBox('Знания IV', self.devPage2)
        self.levelFour.move(280, 170)
        self.levelFour.setMouseTracking(True)
        self.techno41 = QCheckBox('5D(50000$)', self.levelFour)
        self.techno41.setMouseTracking(True)
        self.techno41.move(10, 20)
        self.techno42 = QCheckBox('24 Bit Sound(60000$)', self.levelFour)
        self.techno42.move(150, 20)
        self.techno43 = QCheckBox('Ultra HD(70000$)', self.levelFour)
        self.techno43.move(10, 80)
        self.techno44 = QCheckBox('Python(90000$)', self.levelFour)
        self.techno44.move(150, 80)
        self.levelFour.setStyleSheet(
            'border-style: solid; border-width: 1px; border-color: black;')
        self.levelFour.setFont(
            QtGui.QFont("Bahnschrift Light SemiCondensed", 12))
        self.techno41.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno42.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno43.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno44.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')
        self.techno44.adjustSize()
        self.techno43.adjustSize()
        self.techno42.adjustSize()
        self.techno41.adjustSize()
        self.techno42.setMouseTracking(True)
        self.techno44.setMouseTracking(True)
        self.techno43.setMouseTracking(True)
        self.levelFour.adjustSize()

        self.pushToStartDev = QPushButton('Начать', self.devPage2)
        self.pushToStartDev.setMouseTracking(True)
        self.pushToStartDev.move(280, 290)
        self.pushToStartDev.setStyleSheet(
            'border-style: solid; border-width: 1px; border-color: black;'
            'background-color: rgb(207, 162, 198);')
        self.pushToStartDev.clicked.connect(self.showDevPage3)

        self.timeToEnd = 5
        self.totalMoney = QLabel('Итого: 0', self.devPage2)
        self.totalMoney.move(100, 290)
        self.totalMoney.setStyleSheet(
            'border-style: solid; border-width: 1px; border-color: black;'
            'background-color: rgb(207, 162, 198);')

        self.devPage1Exit = QLabel('', self.devPage1)
        self.devPage1Exit.setPixmap(QPixmap('shopExit.png'))
        self.devPage1Exit.move(560, 5)
        self.devPage1Exit.adjustSize()
        self.devPage1Exit.setMouseTracking(True)

        self.devPage2Exit = QLabel('', self.devPage2)
        self.devPage2Exit.setPixmap(QPixmap('shopExit.png'))
        self.devPage2Exit.move(560, 5)
        self.devPage2Exit.adjustSize()
        self.devPage2Exit.setMouseTracking(True)

        self.devPage3 = QWidget(self)
        self.devPage3.move(10000, 10000)
        self.devPage3.resize(600, 330)
        self.devPage3.setMouseTracking(True)
        self.devPage3.setStyleSheet(
            'border-style: solid; border-width: 3px; border-color: black;'
            'background-color: rgb(207, 162, 98);')

        self.warning = QLabel('', self.devPage2)
        self.warning.move(400, 290)
        self.warning.setFont(QtGui.QFont("Bahnschrift Light SemiCondensed",
                                         10))
        self.warning.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;')

        self.timeDev = False
        self.timeSale = False
        self.fans = 0
        # ////

        self.startPage = QWidget(self)
        self.startPage.move(0, 0)
        self.startPage.setFont(
            QtGui.QFont("Bahnschrift Light SemiCondensed", 30))
        self.startPage.resize(1024, 768)
        self.startPage.setStyleSheet(
            'border-style: solid; border-width: 3px; border-color: black;'
            'background-color: rgb(207, 162, 98);')
        self.startText = QLabel(
            'Здравствуй, начинающий разработчик! Начиная игру, сначала \n тебе потребуются'
            'купить набор "Знания I" в магазине, затем \nты можешь начать разработку своей '
            'первой игры в разделе\n "Разработка". на первом этапе ты можешь выбрать тему и '
            'жанр\n игры, а также платформу и тип,\которые открываются с каждым\n набором знаний. '
            'На втором этапе тебе будет доступен выбор \nтехнологий, который с каждым набором '
            'знаний\n будет увеличиваться. Так же каждые 30 дней тебе придется \nплатить налог, '
            'так что будь осторожен!. Удачи!! ', self.startPage)
        self.startText.setStyleSheet(
            'border-style: solid; border-width: 0px; border-color: black;'
            'background-color: rgb(207, 162, 98);')
        self.startText.move(10, 10)
        self.startButton = QPushButton('Начать', self.startPage)
        self.startButton.move(700, 600)
        self.startButton.adjustSize()
        self.startButton.clicked.connect(self.start)

    def start(self):  # начало игры
        self.startPage.move(10000, 10000)
        self.timer.start(1550)

    def mouseMoveEvent(self, event):  # обработка передвижения мыши
        if 500 <= event.x() <= 645 and 7 <= event.y() <= 95:
            self.shopButton.setPixmap(QPixmap('shopButton2.png'))
        elif 700 <= event.x() <= 845 and 7 <= event.y() <= 95:
            self.devButton.setPixmap(QPixmap('devButton2.png'))
        elif 310 <= event.x() <= 455 and 211 <= event.y(
        ) <= 297 and self.shopOn:
            self.shopItem1.setPixmap(QPixmap('shopItem12.png'))
        elif 500 <= event.x() <= 644 and 211 <= event.y(
        ) <= 297 and self.shopOn:
            self.shopItem2.setPixmap(QPixmap('shopItem2.png'))
        elif 310 <= event.x() <= 455 and 461 <= event.y(
        ) <= 547 and self.shopOn:
            self.shopItem3.setPixmap(QPixmap('shopItem32.png'))
        elif 500 <= event.x() <= 644 and 461 <= event.y(
        ) <= 547 and self.shopOn:
            self.shopItem4.setPixmap(QPixmap('shopItem42.png'))
        elif self.devPage2On:
            self.totalMon = self.cashToDev
            if self.techno11.isChecked():
                self.totalMon += 5
            if self.techno12.isChecked():
                self.totalMon += 10
            if self.techno13.isChecked():
                self.totalMon += 20
            if self.techno14.isChecked():
                self.totalMon += 35
            if self.techno21.isChecked():
                self.totalMon += 100
            if self.techno22.isChecked():
                self.totalMon += 300
            if self.techno23.isChecked():
                self.totalMon += 500
            if self.techno24.isChecked():
                self.totalMon += 1000
            if self.techno31.isChecked():
                self.totalMon += 3500
            if self.techno32.isChecked():
                self.totalMon += 7000
            if self.techno33.isChecked():
                self.totalMon += 13000
            if self.techno34.isChecked():
                self.totalMon += 20000
            if self.techno41.isChecked():
                self.totalMon += 50000
            if self.techno42.isChecked():
                self.totalMon += 60000
            if self.techno43.isChecked():
                self.totalMon += 70000
            if self.techno44.isChecked():
                self.totalMon += 90000
            self.totalMoney.setText('Итого: ' + str(self.totalMon))
            self.totalMoney.adjustSize()
        else:
            self.shopButton.setPixmap(QPixmap('shopButton.png'))
            self.shopItem1.setPixmap(QPixmap('shopItem1.png'))
            self.devButton.setPixmap(QPixmap('devButton.png'))
            self.shopItem2.setPixmap(QPixmap('shopItem22.png'))
            self.shopItem3.setPixmap(QPixmap('shopItem3.png'))
            self.shopItem4.setPixmap(QPixmap('shopItem4.png'))

    def mousePressEvent(self, event):  # обработка нажатия кнопок мыши
        if event.button() == Qt.LeftButton:
            if 500 <= event.x() <= 645 and 7 <= event.y() <= 95:
                self.showShop()
            elif 700 <= event.x() <= 845 and 7 <= event.y() <= 95:
                self.showDev()
            elif 660 <= event.x() <= 690 and 211 <= event.y(
            ) <= 241 and self.shopOn:
                self.shopOn = False
                self.shop.move(10000, 10000)
            elif 760 <= event.x() <= 790 and 105 <= event.y(
            ) <= 135 and self.devPage1On:
                self.devPage1On = False
                self.devPage1.move(1000, 1000)
                self.timer.start()
            elif 760 <= event.x() <= 790 and 105 <= event.y(
            ) <= 135 and self.devPage2On:
                self.devPage2On = False
                self.timer.start()
                self.devPage2.move(10000, 10000)
            elif 310 <= event.x() <= 455 and 211 <= event.y(
            ) <= 297 and self.shopOn:
                if self.levelOfKnowledge < 1 and self.cash >= 5:
                    self.levelOfKnowledge = 1
                    self.cash -= 5
                    self.money.setText('Деньги: \n   ' + str(self.cash))
            elif 500 <= event.x() <= 644 and 211 <= event.y(
            ) <= 297 and self.shopOn:
                if self.levelOfKnowledge < 2 and self.cash >= 500:
                    self.levelOfKnowledge = 2
                    self.cash -= 500
                    self.money.setText('Деньги: \n   ' + str(self.cash))
            elif 310 <= event.x() <= 455 and 461 <= event.y(
            ) <= 547 and self.shopOn:
                if self.levelOfKnowledge < 3 and self.cash >= 20000:
                    self.levelOfKnowledge = 3
                    self.cash -= 20000
                    self.money.setText('Деньги: \n   ' + str(self.cash))
            elif 500 <= event.x() <= 644 and 461 <= event.y(
            ) <= 547 and self.shopOn:
                if self.levelOfKnowledge < 4 and self.cash >= 200000:
                    self.levelOfKnowledge = 4
                    self.cash -= 200000
                    self.money.setText('Деньги: \n   ' + str(self.cash))

    def showShop(self):  # активация окошка магазина
        self.shopOn = True
        self.shop.move(300, 200)

    def showDev(self):  # активация окошка первого этапа разработки игры
        self.devPage1On = True
        self.timer.stop()
        self.platform1.setEnabled(False)
        self.platform2.setEnabled(False)
        self.platform3.setEnabled(False)
        self.platform4.setEnabled(False)
        self.type1.setEnabled(False)
        self.type2.setEnabled(False)
        self.type3.setEnabled(False)
        self.type4.setEnabled(False)
        if self.levelOfKnowledge >= 1:
            self.platform1.setEnabled(True)
            self.type1.setEnabled(True)
        if self.levelOfKnowledge >= 2:
            self.platform2.setEnabled(True)
            self.type2.setEnabled(True)
        if self.levelOfKnowledge >= 3:
            self.platform3.setEnabled(True)
            self.type3.setEnabled(True)
        if self.levelOfKnowledge >= 4:
            self.platform4.setEnabled(True)
            self.type4.setEnabled(True)
        self.devPage1.move(200, 100)

    def tick(self):  # описание действия таймера
        if self.cash < 0:
            msg = QMessageBox()
            msg.setIcon(QMessageBox.Warning)

            msg.setText("Вы проиграли!:(")
            msg.setWindowTitle("Проигрыш")
            retval = msg.exec_()
            if retval == QMessageBox.Ok:
                sys.exit(app.exec_())
        self.days += 1
        self.date.setText('Дни:\n   ' + str(self.days))
        self.date.adjustSize()
        if self.timeDev:
            if self.timeToEnd > 1:
                self.timeToEnd -= 1
                self.table.setText('Дней до релиза: \n' + str(self.timeToEnd))
                self.table.adjustSize()
            else:
                self.relise()
        elif self.timeSale:
            if self.timeToEnd > 0:
                self.timeToEnd -= 1
                self.sale()
            else:
                self.table.setText(
                    'Конец продаж! \n  \nЗаработано за все дни: \n' +
                    str(self.totalPapers))
                self.table.adjustSize()
                self.timeSale = False
                self.timeToEnd = 5
        if self.days % 30 == 0:
            print(2)
            self.nalog.setText('Плоти Налог!!')
            self.nalog.adjustSize()
            self.cash -= int(
                (self.totalPapers / (self.days / 30) + self.fans /
                 (self.days / 30))) + self.levelOfKnowledge * self.days * 2
            self.money.setText('Деньги: \n   ' + str(self.cash))
            self.money.adjustSize()
        else:
            self.nalog.setText("До налога:" + str(30 - self.days % 30) +
                               "\n Налог: " + str(
                                   int((self.totalPapers /
                                        (self.days / 30) + self.fans /
                                        (self.days / 30))) +
                                   self.levelOfKnowledge * self.days * 2))
            self.nalog.adjustSize()

    def showDevPage2(self):  # показывается окошко второго этапа разработки
        self.cashToDev = 0
        if self.levelOfKnowledge > 0:
            if self.theme1.isChecked():
                self.theme = 1
            elif self.theme2.isChecked():
                self.theme = 2
            elif self.theme3.isChecked():
                self.theme = 3
            elif self.theme4.isChecked():
                self.theme = 4
            elif self.theme5.isChecked():
                self.theme = 5
            elif self.theme6.isChecked():
                self.theme = 6
            elif self.theme7.isChecked():
                self.theme = 7
            elif self.theme8.isChecked():
                self.theme = 8
            if self.style1.isChecked():
                self.style = 1
            elif self.style2.isChecked():
                self.style = 2
            elif self.style3.isChecked():
                self.style = 3
            elif self.style4.isChecked():
                self.style = 4
            elif self.style5.isChecked():
                self.style = 5
            elif self.style6.isChecked():
                self.style = 6
            elif self.style7.isChecked():
                self.style = 7
            elif self.style8.isChecked():
                self.style = 8
            elif self.type1.isChecked():
                self.type = 1
                self.cashToDev += 10
            elif self.type2.isChecked():
                self.type = 2
                self.cashToDev += 300
            elif self.type3.isChecked():
                self.type = 3
                self.cashToDev += 4000
            elif self.type4.isChecked():
                self.cashToDev += 40000
                self.type = 4
            if self.platform1.isChecked():
                self.platform = 1
                self.cashToDev += 10
            elif self.platform2.isChecked():
                self.platform = 2
                self.cashToDev += 400
            elif self.platform3.isChecked():
                self.platform = 3
                self.cashToDev += 10000
            elif self.platform4.isChecked():
                self.platform = 4
                self.cashToDev += 60000
            self.devPage1On = False
            self.totalMoney.setText('Итого: ' + str(self.cashToDev))
            self.totalMoney.adjustSize()
            self.devPage1.move(10000, 10000)
            self.levelOne.setEnabled(False)
            self.levelTwo.setEnabled(False)
            self.levelThree.setEnabled(False)
            self.levelFour.setEnabled(False)

            self.type4.setEnabled(False)
            if self.levelOfKnowledge >= 1:
                self.levelOne.setEnabled(True)
            if self.levelOfKnowledge >= 2:
                self.levelTwo.setEnabled(True)
            if self.levelOfKnowledge >= 3:
                self.levelThree.setEnabled(True)
            if self.levelOfKnowledge >= 4:
                self.levelFour.setEnabled(True)
            self.devPage2On = True
            self.devPage2.move(200, 100)

    def showDevPage3(self):
        self.totalTechno = 0
        if self.techno11.isChecked():
            self.totalTechno += 0.5
        if self.techno12.isChecked():
            self.totalTechno += 0.5
        if self.techno13.isChecked():
            self.totalTechno += 0.5
        if self.techno14.isChecked():
            self.totalTechno += 1
        if self.techno21.isChecked():
            self.totalTechno += 4
        if self.techno22.isChecked():
            self.totalTechno += 4
        if self.techno23.isChecked():
            self.totalTechno += 4
        if self.techno24.isChecked():
            self.totalTechno += 8
        if self.techno31.isChecked():
            self.totalTechno += 64
        if self.techno32.isChecked():
            self.totalTechno += 64
        if self.techno33.isChecked():
            self.totalTechno += 64
        if self.techno34.isChecked():
            self.totalTechno += 64
        if self.techno41.isChecked():
            self.totalTechno += 256
        if self.techno42.isChecked():
            self.totalTechno += 256
        if self.techno43.isChecked():
            self.totalTechno += 512
        if self.techno44.isChecked():
            self.totalTechno += 512
        if self.cash < self.totalMon:
            self.warning.setText('Недостаточно денег')
            self.warning.adjustSize()
        elif self.totalTechno == 0:
            self.warning.setText('Выберите хотя бы 1 технологию')
            self.warning.adjustSize()
        else:
            self.cash -= self.totalMon
            self.money.setText("Деньги: \n" + str(self.cash))
            self.startDev()

    def relise(self):  # метод для релиза игры
        self.table.setText('Релиз! \n  \nЗаработано за все дни: \n' +
                           str(self.totalPapers))
        self.table.adjustSize()
        self.timeDev = False
        self.timeToEnd = 5
        self.timeSale = True

    def startDev(self):  # метод для описания процесса разработки
        self.timeDev = True
        self.tick()
        self.timer.start()
        self.devPage2On = False
        self.devPage2.move(10000, 10000)
        self.table.setText('Дней до релиза: \n' + str(self.timeToEnd))
        self.table.adjustSize()

    def sale(self):  # метод для процесса продажи игры
        myltiply1 = 10 + self.platform + self.type
        if self.style in self.perfect[str(self.theme)][0]:
            myltiply2 = 2
        elif self.style in self.perfect[str(self.theme)][1]:
            myltiply2 = 1
        else:
            myltiply2 = 0.5
        a = int(
            randint(self.totalTechno * 10, self.totalTechno * 20) * myltiply2 /
            10 * myltiply1 + (self.fans * 10 + 1))
        if myltiply2 > 1:
            self.fans += a // 10
        elif myltiply2 < 1:
            self.fans -= a // 10
        self.totalPapers += a
        self.cash += a
        self.subs.setText('Фанаты: \n  ' + str(self.fans))
        self.money.setText('Деньги: \n   ' + str(self.cash))
        self.money.adjustSize()
        self.subs.adjustSize()
        self.table.setText('Заработано сегодня: \n' + str(a) +
                           '\nЗаработано за все дни: \n' +
                           str(self.totalPapers))
        self.table.adjustSize()
Example #2
0
class ConnectionWindow:
    """
    Fenetre de connexion en local. Impossible pour le moment de se connecter à un réseau
    et de s'enregistrer dedans 
    """
    current_user = None

    def __init__(self):
        ## Variables autres -----------------------
        global version

        self.colorText = ""
        if sys.platform == "win32":
            self.colorText = "color: #334d9b"

        if choicedBackgroundColor() == 1:
            self.colorText = "color: white;"

        self.version = version
        self.files_enregistrement = None
        self.connected_one = None

        self.ftp = Online()
        # self.ftp.downloadftp("comptes.spi")

        self.ftp.downloadftp("admin.spi")

        try:
            with open("./bin/comptes.spi", "rb") as file:
                depickle = pickle.Unpickler(file)
                self.files_enregistrement = depickle.load()
                Donnees.comptes = self.files_enregistrement

        except:
            with open("./bin/comptes.spi", "wb") as file:
                pickler = pickle.Pickler(file)
                pickler.dump({"uadmin": "padmin"})
                Donnees.comptes, self.files_enregistrement = {
                    "uadmin": "padmin"
                }

        ## APPLICATION ----------------------------

        self.app = QApplication(sys.argv)
        self.win = QWidget()
        x, y = 650, 320
        self.posx, self.posy = center(x, y)
        self.win.setGeometry(self.posx, self.posy, x, y)
        self.win.setWindowTitle("Page de Connexion")
        self.win.setWindowFlag(Qt.FramelessWindowHint)
        self.win.setWindowIcon(QIcon("./bin/icon1.png"))

        self.win.show()

        self.label0 = QLabel(self.win)
        self.label0.move(0, 0)
        self.label0.resize(x, y)
        self.label0.setStyleSheet(getBackgroundColor())
        self.label0.show()

        self.label1 = QLabel(self.win)
        self.label1.setText("Choix")
        self.label1.move(20, 10)
        self.label1.setFont(QFont('Mangal', 80))
        self.label1.setStyleSheet(self.colorText)
        self.label1.adjustSize()
        self.label1.show()

        self.label2 = QLabel(self.win)
        self.label2.setText("Mauvais identifiants, réessayez.")
        self.label2.move(260, 150)
        self.label2.setFont(QFont('Mangal', 11))
        self.label2.adjustSize()
        # self.label2.show()

        self.label3 = QLabel(self.win)
        self.label3.setText("Vérification de version en cours...")
        self.label3.move(20, 190)
        self.label3.setFont(QFont('Mangal', 11))
        self.label3.setStyleSheet(self.colorText)
        self.label3.adjustSize()
        self.label3.show()
        self.threadLabel3 = Thread(None, self.version_search)
        self.threadLabel3.start()

        self.champ1 = QLineEdit(self.win)
        self.champ1.move(20, 140)
        self.champ1.resize(220, 30)
        self.champ1.setFont(QFont('Mangal', 15))
        # self.champ1.show()

        self.champ2 = QLineEdit(self.win)
        self.champ2.setEchoMode(QLineEdit.Password)
        self.champ2.move(20, 180)
        self.champ2.setFont(QFont('Mangal', 15))
        self.champ2.resize(220, 30)
        # self.champ2.show()

        self.bouton1 = QPushButton(self.win)
        self.bouton1.setText(" Se connecter ")
        self.bouton1.move(20, 220)
        self.bouton1.setFont(QFont('Mangal', 20))
        self.bouton1.clicked.connect(self.connection)

        self.openAction = QAction("&ouvrir", self.win)
        self.openAction.setShortcut("Return")
        self.openAction.triggered.connect(self.connection)
        self.win.addAction(self.openAction)
        # self.bouton1.show()

        self.bouton2 = QPushButton(self.win)
        self.bouton2.setText(" S'enregistrer ")
        self.bouton2.move(220, 220)
        self.bouton2.setFont(QFont('Mangal', 20))
        self.bouton2.clicked.connect(self.register_window)
        # self.bouton2.show()

        self.bouton3 = QPushButton(self.win)
        self.bouton3.setText("Fermer")
        self.bouton3.move(20, 270)
        self.bouton3.setFont(QFont('Mangal', 11))
        self.bouton3.clicked.connect(self.quitterNet)
        self.bouton3.show()

        self.bouton4 = QPushButton(self.win)
        self.bouton4.setText("Télécharger ?")
        self.bouton4.move(400, 220)
        self.bouton4.setFont(QFont('Mangal', 20))
        self.bouton4.setStyleSheet(self.colorText)
        self.bouton4.clicked.connect(self.updateDownload)

        self.radio1 = QRadioButton(self.win)
        self.radio1.setText("En Ligne")
        self.radio1.move(120, 275)
        self.radio1.setStyleSheet(self.colorText)
        self.radio1.adjustSize()
        self.radio1.toggled.connect(self.onlineOrNot)
        self.radio1.show()

        self.radio2 = QRadioButton(self.win)
        self.radio2.setText("Hors Ligne")
        self.radio2.move(200, 275)
        self.radio2.setStyleSheet(self.colorText)
        self.radio2.adjustSize()
        self.radio2.toggled.connect(self.onlineOrNot)
        self.radio2.show()

        # --------------- Page d'enregistrement --------------

        self.win2 = QWidget()
        x2, y2 = 270, 400
        self.posx2, self.posy2 = center(x2, y2)
        self.win2.setGeometry(self.posx2, self.posy2, x2, y2)
        self.win2.setWindowTitle("S'enregistrer")
        self.win2.setWindowIcon(QIcon("./bin/icon1.png"))

        self.labelWin21 = QLabel(self.win2)
        self.labelWin21.setText("S'enregistrer")
        self.labelWin21.move(20, 10)
        self.labelWin21.setFont(QFont('Mangal', 30))
        self.labelWin21.adjustSize()
        self.labelWin21.show()

        self.labelWin22 = QLabel(self.win2)
        self.labelWin22.setText("Nouveau nom d'utilisateur")
        self.labelWin22.move(20, 70)
        self.labelWin22.setFont(QFont('Mangal', 12))
        self.labelWin22.adjustSize()
        self.labelWin22.show()

        self.champWin21 = QLineEdit(self.win2)
        self.champWin21.setText("username")
        self.champWin21.move(20, 90)
        self.champWin21.resize(220, 30)
        self.champWin21.show()

        self.labelWin23 = QLabel(self.win2)
        self.labelWin23.setText("Mot de passe")
        self.labelWin23.move(20, 130)
        self.labelWin23.setFont(QFont('Mangal', 12))
        self.labelWin23.adjustSize()
        self.labelWin23.show()

        self.champWin22 = QLineEdit(self.win2)
        self.champWin22.setEchoMode(QLineEdit.Password)
        self.champWin22.move(20, 150)
        self.champWin22.resize(220, 30)
        self.champWin22.show()

        self.labelWin24 = QLabel(self.win2)
        self.labelWin24.setText("Retapez le mot de passe")
        self.labelWin24.move(20, 190)
        self.labelWin24.setFont(QFont('Mangal', 12))
        self.labelWin24.adjustSize()
        self.labelWin24.show()

        self.champWin23 = QLineEdit(self.win2)
        self.champWin23.setEchoMode(QLineEdit.Password)
        self.champWin23.move(20, 210)
        self.champWin23.resize(220, 30)
        self.champWin23.show()

        self.labelWin25 = QLabel(self.win2)
        self.labelWin25.setText("Retapez le mot de passe")
        self.labelWin25.move(20, 250)
        self.labelWin25.setFont(QFont('Mangal', 12))
        self.labelWin25.adjustSize()

        self.boutonWin21 = QPushButton(self.win2)
        self.boutonWin21.setText("S'enregistrer")
        self.boutonWin21.move(20, 300)
        self.boutonWin21.setFont(QFont('Mangal', 13))
        self.boutonWin21.clicked.connect(self.register)
        self.boutonWin21.show()

        self.app.exec_()

    def onlineOrNot(self) -> None:
        if Donnees.online_final == False:
            self.radio1.setCheckable(False)
            self.radio1.setStyleSheet("color : red;")

        if self.radio1.isChecked():

            self.bouton2.show()
            self.bouton1.show()
            self.label1.setText("Connexion")
            self.label1.adjustSize()
            self.bouton1.setText(" Se connecter ")
            self.bouton1.adjustSize()
            self.bouton2.setVisible(True)
            self.champ1.setVisible(True)
            self.champ2.setVisible(True)
            self.label3.setVisible(True)
            self.label3.move(250, 170)
            self.label3.show()
            Donnees.online = True
            self.ftp.downloadftp("comptes.spi")

        elif self.radio2.isChecked():

            self.label1.setText("Offline")
            self.label1.adjustSize()
            self.bouton1.setText(" Se connecter Hors Ligne ")
            self.bouton1.show()
            self.bouton1.adjustSize()
            self.bouton2.setVisible(False)
            self.champ1.setVisible(False)
            self.champ2.setVisible(False)
            self.label3.setVisible(False)

            Donnees.online = False

    def connection(self) -> None:
        """
        Module connexion
        """
        admin = False
        admin_list = None
        if self.radio1.isChecked():
            try:
                with open("./bin/admin.spi", "rb") as adm:
                    pic = pickle.Unpickler(adm)
                    admin_list = pic.load()
                    Donnees.admin = admin_list
            except:
                with open("./bin/admin.spi", "wb") as adm:
                    pic = pickle.Pickler(adm)
                    pic.dump(["uadmin", "Shayajs"])
                    Donnees.admin = ["uadmin", "Shayajs"]

            tha = Thread(None, self._timer_labe2)
            try:
                if self.files_enregistrement[
                        self.champ1.text()] and self.files_enregistrement[
                            self.champ1.text()] == self.champ2.text():

                    self.label2.setText("Connecté !")
                    self.label2.setStyleSheet("color : green;")
                    self.label2.adjustSize()
                    self.label2.show()
                    self.connected_one = (self.champ1.text(), True)

                    if self.champ1.text() in admin_list:
                        admin = True

                    Donnees.current_user = {
                        "user": self.champ1.text(),
                        "admin": admin
                    }

                    self.quitter()
                    self.win.setVisible(False)

                else:

                    self.label2.setStyleSheet("color : red;")
                    self.label2.show()
                    tha.start()

            except:
                self.label2.show()
                self.label2.setStyleSheet("color : red;")
                tha.start()
        elif self.radio2.isChecked():
            self.quitter()
            self.win.setVisible(False)
            Donnees.current_user = {"user": "******", "admin": False}

    def version_search(self) -> None:
        """
        Vérifie si le logiciel est à jour
        """
        a = 0
        b = 0

        try:
            verif = verif_ver()

            splited1 = verif.split(".")
            splited2 = self.version.split(".")

            for i in range(0, 3):
                if int(splited1[i]) == int(splited2[i]):
                    pass
                elif int(splited1[i]) > int(splited2[i]):
                    a = 1
                    break
                elif int(splited1[i]) < int(splited2[i]):
                    b = 1
                    break

            if b == a:
                self.label3.setText("Vous êtes à jour")
                self.label3.adjustSize()
                self.label3.setStyleSheet("color: green;")

            elif b < a:
                self.label3.setText(f"La version {verif} est disponible !")
                self.label3.adjustSize()
                self.label3.setStyleSheet("color: steelblue;")
                self.bouton4.show()

            elif b > a:
                # self.label3.move(250, 170)
                self.label3.setText(
                    f"Votre version ({self.version}) est une version beta !\n(Version en ligne : {verif})"
                )
                self.label3.setStyleSheet("color: goldenrod;")
                self.label3.adjustSize()

            else:
                self.label3.setText(
                    "Impossible de vérifier les mises à jours.")
        except:
            self.label3.setText("Impossible de vérifier les mises à jours.")
            self.label3.adjustSize()

    def _timer_labe2(self) -> None:
        """
        Permettre un affichage limité de l'étiquette de connexion
        """
        sleep(2.5)
        self.label2.setVisible(False)
        self.win2.setVisible(False)

    def quitter(self) -> None:
        """
        Quitter l'application
        """
        self.win.setVisible(False)
        # self.app.quit()
        qApp.quit()

    def quitterNet(self):
        """
        Quitter l'application
        """
        Donnees.current_user = {"user": None, "admin": False}
        self.win.setVisible(False)
        # self.app.quit()
        qApp.quit()
        del self

    def register_window(self) -> None:
        """
        Ouvrir la page d'enregistrement
        """
        try:
            self.win2.show()
            self.champWin21.setText("")
            self.champWin22.setText("")
            self.champWin23.setText("")
            self.labelWin25.setVisible(False)
        except:
            self.label2.setText("Une erreur est survenue")
            threadExceptLabel2 = Thread(None, self._timer_labe2)
            threadExceptLabel2.start()
            exceptionRaised()

    def register(self):
        """
        Page d'enregistrement
        """
        a = 0
        try:
            self.files_enregistrement[self.champWin21.text()]
            a = 1
        except:
            a = 2

        if a == 1:
            self.labelWin25.setText("Ce compte est déjà enregistré !")
            self.labelWin25.setStyleSheet("color: red;")
            self.labelWin25.adjustSize()
            self.labelWin25.show()

        elif a == 2:
            if self.champWin22.text() == self.champWin23.text() and (
                    self.champWin22.text() != ""
                    and self.champWin23.text() != ""):

                self.files_enregistrement[
                    self.champWin21.text()] = self.champWin22.text()

                self.labelWin25.setText("Enregistrement en cours ...")

                with open("./bin/comptes.spi", "wb") as file:
                    pickler = pickle.Pickler(file)
                    pickler.dump(self.files_enregistrement)

                sleep(1)

                Donnees.comptes = self.files_enregistrement
                self.ftp.uploadftp("comptes.spi")

                self.labelWin25.setText("Enregistré")
                self.labelWin25.setStyleSheet("color: green;")
                self.labelWin25.adjustSize()
                self.labelWin25.show()

            elif self.champWin22.text() != self.champWin23.text():
                self.labelWin25.setText(
                    "Vous n'avez pas renseigné deux\nfois le même mot de passe !"
                )
                self.labelWin25.setStyleSheet("color: red;")
                self.labelWin25.adjustSize()
                self.labelWin25.show()

            elif self.champWin22.text() == "" and self.champWin23.text() == "":
                self.labelWin25.setText("Renseignez un mot de passe")
                self.labelWin25.setStyleSheet("color: red;")
                self.labelWin25.adjustSize()
                self.labelWin25.show()

            else:
                self.labelWin25.setText("Une erreur s'est déroulée")
                self.labelWin25.setStyleSheet("color: steelblue;")
                self.labelWin25.adjustSize()
                self.labelWin25.show()

    def updateThread(self):

        self.champ1.setVisible(False)
        self.champ2.setVisible(False)
        self.bouton4.setVisible(False)
        self.label3.setText("Téléchargement en cours...")
        self.label3.setFont(QFont('Mangal', 30))
        self.label3.move(30, 140)
        self.label3.adjustSize()
        self.bouton1.setVisible(False)
        self.bouton2.setVisible(False)
        self.radio1.setVisible(False)
        self.radio2.setVisible(False)
        self.bouton3.setText("Annuler")

    def updateStateTwo(self):
        self.label3.setText("Installation en cours")

    def updateDownload(self):

        sender = Recver()
        tha = Thread(None, self.updateThread)
        tha.start()
        thb = Thread(None, sender.recvtd2, None, (self.label3, ))

        try:
            thb.start()
        except:
            self.label3.setStyleSheet("color: red;")
            self.label3.setText("Le serveur est down")

    def __del__(self):
        print("Sortie sans connexion")