Ejemplo n.º 1
0
class timeWidget(QWidget):

    time = pyqtSignal()

    def __init__(self, winParent):
        super(timeWidget, self).__init__()
        self.winParent = winParent
        self.seconds = 0

        hLayout = QHBoxLayout()

        timeLabel = QLabel("Time")
        self.lcd = QLCDNumber(self)
        self.lcd.setMaximumSize(100, 50)
        hLayout.addWidget(timeLabel, 0)
        hLayout.addWidget(self.lcd, 1)

        hSpacer = QSpacerItem(300, 30, QSizePolicy.Ignored,
                              QSizePolicy.Ignored)
        hLayout.addItem(hSpacer)

        self.setLayout(hLayout)

        timer = QTimer(self)
        timer.start(1000)
        timer.timeout.connect(self.printTime)

        # get the palette
        palette = self.lcd.palette()

        # foreground color
        palette.setColor(palette.WindowText, QColor(85, 85, 255))
        # background color
        palette.setColor(palette.Background, QColor(0, 170, 255))
        # "light" border
        palette.setColor(palette.Light, QColor(255, 0, 0))
        # "dark" border
        palette.setColor(palette.Dark, QColor(0, 255, 0))

        # set the palette
        self.lcd.setPalette(palette)

    def printTime(self):
        self.seconds += 1
        self.lcd.display(self.seconds)
class timeWidget(QWidget):

    time = pyqtSignal()
    def __init__(self,winParent):    
        super(timeWidget, self).__init__()
        self.winParent=winParent
        self.seconds = 0
        
        hLayout = QHBoxLayout()
        
        timeLabel = QLabel("Time")
        self.lcd = QLCDNumber(self)
        self.lcd.setMaximumSize(100,50)
        hLayout.addWidget(timeLabel,0)
        hLayout.addWidget(self.lcd, 1)

        hSpacer = QSpacerItem(300, 30, QSizePolicy.Ignored, QSizePolicy.Ignored)
        hLayout.addItem(hSpacer)

        self.setLayout(hLayout)

        timer = QTimer(self)
        timer.start(1000)
        timer.timeout.connect(self.printTime)


        # get the palette
        palette = self.lcd.palette()

        # foreground color
        palette.setColor(palette.WindowText, QColor(85, 85, 255))
        # background color
        palette.setColor(palette.Background, QColor(0, 170, 255))
        # "light" border
        palette.setColor(palette.Light, QColor(255, 0, 0))
        # "dark" border
        palette.setColor(palette.Dark, QColor(0, 255, 0))

        # set the palette
        self.lcd.setPalette(palette)

    def printTime(self):
        self.seconds += 1
        self.lcd.display(self.seconds)
Ejemplo n.º 3
0
class timeDigitalWidget(QWidget):

    time = pyqtSignal()

    def __init__(self, winParent, Percentage):
        super(timeDigitalWidget, self).__init__()
        self.winParent = winParent
        self.seconds = 900
        self.pose3d = pose3d
        self.Percentage = Percentage
        self.show = False
        self.MAX_PERCENT = 30
        self.MAX_MARK = 10

        self.hLayout = QHBoxLayout()

        timeLabel = QLabel("Time")
        self.lcd = QLCDNumber(self)
        self.lcd.setMaximumSize(100, 50)
        self.hLayout.addWidget(timeLabel, 0)
        self.hLayout.addWidget(self.lcd, 1)

        hSpacer = QSpacerItem(300, 30, QSizePolicy.Ignored,
                              QSizePolicy.Ignored)
        self.hLayout.addItem(hSpacer)

        self.setLayout(self.hLayout)

        timer = QTimer(self)
        timer.start(1000)
        timer.timeout.connect(self.printTime)

        # get the palette
        palette = self.lcd.palette()

        # foreground color
        palette.setColor(palette.WindowText, QColor(85, 85, 255))
        # background color
        palette.setColor(palette.Background, QColor(0, 170, 255))
        # "light" border
        palette.setColor(palette.Light, QColor(255, 0, 0))
        # "dark" border
        palette.setColor(palette.Dark, QColor(0, 255, 0))

        # set the palette
        self.lcd.setPalette(palette)

    def showMark(self):
        self.show = True
        mark = self.testPercentage()
        markLabel = QLabel('Final mark: ' + str(mark))
        self.hLayout.addWidget(markLabel, 0)
        self.setLayout(self.hLayout)

    def printTime(self):

        if self.seconds > 0:
            self.seconds -= 1
        else:
            if not self.show:
                self.showMark()
        self.lcd.display(self.seconds)

    def testPercentage(self):
        pHouse = self.Percentage.calculatePercentage()
        markPerc = float(pHouse) * float(self.MAX_MARK) / float(
            self.MAX_PERCENT)
        if pHouse > self.MAX_PERCENT:
            markPerc = 10
        return markPerc
Ejemplo n.º 4
0
class DisplayActionneur(anr.Actionneur, QWidget):
    """ Combinaison d'un objet Actionneur et d'un QWidget """
    def __init__(self, parent_robot, nom, min_val, max_val, step=1, unite=None):
        QWidget.__init__(self)
        anr.Actionneur.__init__(self, nom, min_val, max_val, step, unite)
        self.parent_robot = parent_robot
        self.backend = self.parent_robot.backend
        self.updated_outside = False
        self.ping = 0

        # Création des widgets de l'équipement
        self.gridlayout_eqp = QGridLayout(self)
        self.spaceritem_equipement = QSpacerItem(1, 15)
        self.label_name_equipement = QLabel()
        self.label_message_equipement = QLabel("Dernière MAJ (s)")
        self.lcdnumber_ping_eqp = QLCDNumber()

        self.layout_discret = QHBoxLayout()
        self.slider_equipement = QSlider(Qt.Horizontal)
        self.doublespinbox_eqp = QDoubleSpinBox()
        self.label_command = QLineEdit()
        self.label_last_command = QLabel()

        # Configuration des widgets de l'équipement
        self.ui_setup_equipement()

    #calcul et mise à jour du ping
    def update_ping(self):
        """Mise à jour du ping de l'équipement"""
        self.ping = round(abs(time.time() - self.last_updt), 1)
        self.lcdnumber_ping_eqp.display(format(self.ping))

    def ui_setup_equipement(self):
        """ Configure l'ensemble des widgets de l'équipement"""

        self.gridlayout_eqp.setAlignment(QT_TOP)

        if self.unite == "None" or self.unite is None:
            self.label_name_equipement.setText(self.nom)
        else:
            self.label_name_equipement.setText('{0} ({1})'.format(self.nom, self.unite))
        self.gridlayout_eqp.addWidget(self.label_name_equipement, 0, 0, 1, 1, QT_LEFT)

        self.label_message_equipement.setText("Dernière MAJ (s)")
        self.gridlayout_eqp.addWidget(self.label_message_equipement, 2, 0, 1, 2, QT_LEFT)
        self.lcdnumber_ping_eqp.setMaximumSize(QSize(75, 25))
        self.lcdnumber_ping_eqp.setFixedSize(QLCD_SIZE2)
        self.gridlayout_eqp.addWidget(self.lcdnumber_ping_eqp, 2, 1, 1, 1, QT_RIGHT)

        self.slider_equipement.setFixedSize(100, 30)
        self.slider_equipement.setMinimum(self.min_val)
        self.slider_equipement.setMaximum(self.max_val)
        self.slider_equipement.setSingleStep(self.step)
        self.slider_equipement.valueChanged.connect(self.onvaluechanged_slider)
        self.layout_discret.addWidget(self.slider_equipement)
        self.doublespinbox_eqp.setFixedSize(75, 30)
        self.doublespinbox_eqp.setMaximum(self.max_val)
        self.doublespinbox_eqp.setMinimum(self.min_val)
        self.doublespinbox_eqp.setSingleStep(self.step)
        self.doublespinbox_eqp.setAlignment(QT_CENTER)
        self.doublespinbox_eqp.valueChanged.connect(self.onvaluechanged)
        self.layout_discret.addWidget(self.doublespinbox_eqp)
        self.gridlayout_eqp.addLayout(self.layout_discret, 0, 1, 1, 1, QT_RIGHT)

        self.label_command.setText("None")
        self.label_command.setFixedSize(75, 30)
        self.label_command.setReadOnly(True)
        self.label_command.setAlignment(QT_CENTER)
        self.gridlayout_eqp.addWidget(self.label_command, 1, 1, 1, 1, QT_RIGHT)
        self.label_last_command.setText("Dern. Cmd:")
        self.gridlayout_eqp.addWidget(self.label_last_command, 1, 0, 1, 1, QT_LEFT)

    def set_state(self, valeur):
        """Change la valeur

        Entrée:
        - valeur (float)"""
        anr.Binaire.set_state(self, valeur)
        self.updated_outside = True
        self.slider_equipement.setValue(int(valeur))
        self.doublespinbox_eqp.setValue(valeur)
        self.updated_outside = False

    def updt_cmd(self, state):
        """Met à jour le timestamp de dernière commande
        et la dernière commande"""
        anr.Binaire.updt_cmd(self, state)
        self.label_command.setText(str(state))

    @pyqtSlot()
    def onvaluechanged(self):
        """ Affiche et envoie vers backend la dernière commande d'un actionneur discret"""
        if not self.updated_outside:
            self.backend.sendeqpcmd(self.parent_robot.rid, self.nom, self.doublespinbox_eqp.value())
            self.label_command.setText(str(self.doublespinbox_eqp.value()))
            self.slider_equipement.setValue(int(self.doublespinbox_eqp.value()))
            self.updt_cmd(self.doublespinbox_eqp.value())

    @pyqtSlot()
    def onvaluechanged_slider(self):
        """ Affiche et envoie vers backend la dernière commande d'un actionneur discret"""
        if not self.updated_outside:
            self.backend.sendeqpcmd(self.parent_robot.rid, self.nom, self.doublespinbox_eqp.value())
            self.label_command.setText(str(self.slider_equipement.value()))
            self.doublespinbox_eqp.setValue(self.slider_equipement.value())
            self.updt_cmd(self.slider_equipement.value())
Ejemplo n.º 5
0
class DisplayCapteur(anr.Capteur, QWidget):
    """Une combinaison de Capteur et d'un QWidget"""
    def __init__(self, parent_robot, nom, min_val, max_val, step=1, unite=None):
        QWidget.__init__(self)
        anr.Capteur.__init__(self, nom, min_val, max_val, step, unite)
        self.parent_robot = parent_robot
        self.backend = self.parent_robot.backend
        self.updated_outside = False
        self.ping = 0

        # Création des widgets de l'équipement
        self.gridlayout_eqp = QGridLayout(self)
        self.spaceritem_equipement = QSpacerItem(1, 15)
        self.label_name_equipement = QLabel()
        self.label_message_equipement = QLabel("Dernière MAJ (s)")
        self.lcdnumber_ping_eqp = QLCDNumber()

        self.lcdnumber_eqp = QLCDNumber()
        self.progressbar_eqp = QProgressBar()

        # Configuration des widgets de l'équipement
        self.ui_setup_equipement()

    def ui_setup_equipement(self):
        """ Configure l'ensemble des widgets de l'équipement"""

        self.gridlayout_eqp.setAlignment(QT_TOP)

        if self.unite == "None" or self.unite is None:
            self.label_name_equipement.setText(self.nom)
        else:
            self.label_name_equipement.setText('{0} ({1})'.format(self.nom, self.unite))
        self.gridlayout_eqp.addWidget(self.label_name_equipement, 0, 0, 1, 1, QT_LEFT)

        self.label_message_equipement.setText("Dernière MAJ (s)")
        self.gridlayout_eqp.addWidget(self.label_message_equipement, 2, 0, 1, 2, QT_LEFT)
        self.lcdnumber_ping_eqp.setMaximumSize(QSize(75, 25))
        self.lcdnumber_ping_eqp.setFixedSize(QLCD_SIZE2)
        self.gridlayout_eqp.addWidget(self.lcdnumber_ping_eqp, 2, 1, 1, 1, QT_RIGHT)

        if self.min_val is None or self.max_val is None or self.step is None:
            self.lcdnumber_eqp.setMinimumSize(150, 30)
            self.gridlayout_eqp.addWidget(self.lcdnumber_eqp, 0, 1, 1, 1, QT_RIGHT)
            self.progressbar_eqp.hide()
        else:
            self.progressbar_eqp.setRange(int(self.min_val), int(self.max_val))
            self.progressbar_eqp.setAlignment(QT_CENTER)
            self.progressbar_eqp.setFormat("%v")
            self.progressbar_eqp.setFixedSize(150, 30)
            self.gridlayout_eqp.addWidget(self.progressbar_eqp, 0, 1, 1, 1, QT_RIGHT)
            self.lcdnumber_eqp.hide()

    #calcul et mise à jour du ping
    def update_ping(self):
        """Mise à jour du ping de l'équipement"""
        self.ping = round(abs(time.time() - self.last_updt), 1)
        self.lcdnumber_ping_eqp.display(format(self.ping))

    def set_state(self, valeur):
        """Change la valeur

        Entrée:
        - valeur (float)"""
        anr.Binaire.set_state(self, valeur)
        self.updated_outside = True
        if self.valeur is not None:
            self.lcdnumber_eqp.display(self.valeur)
            self.progressbar_eqp.setValue(int(self.valeur))
        self.updated_outside = False
Ejemplo n.º 6
0
class DisplayBinaire(anr.Binaire, QWidget):
    """Une combinaison de l'objet Equipement et d'un QWidget"""
    def __init__(self, parent, nom):
        QWidget.__init__(self)
        anr.Binaire.__init__(self, nom)
        self.parent_robot = parent
        self.backend = self.parent_robot.backend
        self.updated_outside = False
        self.ping = 0

        # Création des widgets de l'équipement
        self.gridlayout_eqp = QGridLayout(self)
        self.spaceritem_equipement = QSpacerItem(1, 15)
        self.label_name_equipement = QLabel()
        self.label_message_equipement = QLabel("Dernière MAJ (s)")
        self.lcdnumber_ping_eqp = QLCDNumber()
        self.layout_binaire = QHBoxLayout()
        self.checkbox_equipement = QCheckBox()
        self.label_command = QLineEdit()
        self.label_last_command = QLabel()
        self.label_binaire = QLabel()

        # Configuration des widgets de l'équipement
        self.ui_setup_equipement()

    def ui_setup_equipement(self):
        """ Configure l'ensemble des widgets de l'équipement"""

        self.gridlayout_eqp.setAlignment(QT_TOP)

        if self.unite == "None" or self.unite is None:
            self.label_name_equipement.setText(self.nom)
        else:
            self.label_name_equipement.setText('{0} ({1})'.format(self.nom, self.unite))
        self.gridlayout_eqp.addWidget(self.label_name_equipement, 0, 0, 1, 1, QT_LEFT)

        self.gridlayout_eqp.addWidget(self.label_message_equipement, 2, 0, 1, 2, QT_LEFT)
        self.lcdnumber_ping_eqp.setMaximumSize(QSize(75, 25))
        self.lcdnumber_ping_eqp.setFixedSize(QLCD_SIZE2)
        self.gridlayout_eqp.addWidget(self.lcdnumber_ping_eqp, 2, 1, 1, 1, QT_RIGHT)

        self.label_binaire.setFixedSize(100, 20)
        self.checkbox_equipement.stateChanged.connect(self.oncheckbox_toggled)
        self.layout_binaire.addWidget(self.label_binaire)
        self.layout_binaire.addWidget(self.checkbox_equipement)
        self.gridlayout_eqp.addLayout(self.layout_binaire, 0, 1, 1, 1, QT_CENTER)

        self.label_command.setText("None")
        self.label_command.setFixedSize(75, 30)
        self.label_command.setReadOnly(True)
        self.label_command.setAlignment(QT_CENTER)
        self.gridlayout_eqp.addWidget(self.label_command, 1, 1, 1, 1, QT_RIGHT)
        self.label_last_command.setText("Dern. Cmd:")
        self.gridlayout_eqp.addWidget(self.label_last_command, 1, 0, 1, 1, QT_LEFT)

    def updt_cmd(self, state):
        """Met à jour le timestamp de dernière commande
        et la dernière commande"""
        anr.Binaire.updt_cmd(self, state)
        self.label_command.setText(str(state))

    def set_state(self, valeur):
        """Change la valeur

        Entrée:
        - valeur (float)"""
        anr.Binaire.set_state(self, valeur)
        self.updated_outside = True
        self.checkbox_equipement.setChecked(int(valeur))
        self.updated_outside = False

    #calcul et mise à jour du ping
    def update_ping(self):
        """Mise à jour du ping de l'équipement"""
        self.ping = round(abs(time.time() - self.last_updt), 1)
        self.lcdnumber_ping_eqp.display(format(self.ping))

    @pyqtSlot()
    def oncheckbox_toggled(self):
        """ Affiche et renvoie vers backend la dernière commande d'un actionneur binaire"""
        if not self.updated_outside:
            state = 1 if self.checkbox_equipement.isChecked() else 0
            self.backend.sendeqpcmd(self.parent_robot.rid, self.nom, state)
            self.updt_cmd(state)
Ejemplo n.º 7
0
class Calc(QWidget):
    def __init__(self):
        super().__init__()

        self.stack = [0]
        self.point = False
        self.n_dec = 0
        self.zeros = 0
        self.modif = True

        self.create_gui()

    def create_gui(self):

        self.setWindowTitle('Cracker calc')

        calc_grid = QGridLayout(self)

        self.screen = QLCDNumber(self)
        self.screen.setMinimumSize(350, 45)
        self.screen.setDigitCount(20)

        calc_grid.addWidget(self.screen, 1, 0, 1, 4)

        self.little_screen = QLCDNumber(self)
        self.little_screen.setMaximumSize(175, 20)
        self.little_screen.setDigitCount(20)

        calc_grid.addWidget(self.little_screen, 0, 2, 1, 2)

        labels = [
            'C', 'CE', '√', 'x²', '7', '8', '9', '÷', '4', '5', '6', '×', '1',
            '2', '3', '-', '0', '.', 'Ent', '+'
        ]

        buttons = []
        buttons_functions = [
            lambda: self.reset(), lambda: self.add('CE'),
            lambda: self.add('√'), lambda: self.add('x²'),
            lambda: self.add('7'), lambda: self.add('8'),
            lambda: self.add('9'), lambda: self.add('÷'),
            lambda: self.add('4'), lambda: self.add('5'),
            lambda: self.add('6'), lambda: self.add('×'),
            lambda: self.add('1'), lambda: self.add('2'),
            lambda: self.add('3'), lambda: self.add('-'),
            lambda: self.add('0'), lambda: self.add('.'),
            lambda: self.add('Ent'), lambda: self.add('+')
        ]
        QShortcut(QKeySequence('Delete'),
                  self).activated.connect(buttons_functions[0])
        QShortcut(QKeySequence('Backspace'),
                  self).activated.connect(buttons_functions[1])
        QShortcut(QKeySequence('s'),
                  self).activated.connect(buttons_functions[2])
        QShortcut(QKeySequence('²'),
                  self).activated.connect(buttons_functions[3])
        QShortcut(QKeySequence('7'),
                  self).activated.connect(buttons_functions[4])
        QShortcut(QKeySequence('8'),
                  self).activated.connect(buttons_functions[5])
        QShortcut(QKeySequence('9'),
                  self).activated.connect(buttons_functions[6])
        QShortcut(QKeySequence('/'),
                  self).activated.connect(buttons_functions[7])
        QShortcut(QKeySequence('4'),
                  self).activated.connect(buttons_functions[8])
        QShortcut(QKeySequence('5'),
                  self).activated.connect(buttons_functions[9])
        QShortcut(QKeySequence('6'),
                  self).activated.connect(buttons_functions[10])
        QShortcut(QKeySequence('*'),
                  self).activated.connect(buttons_functions[11])
        QShortcut(QKeySequence('1'),
                  self).activated.connect(buttons_functions[12])
        QShortcut(QKeySequence('2'),
                  self).activated.connect(buttons_functions[13])
        QShortcut(QKeySequence('3'),
                  self).activated.connect(buttons_functions[14])
        QShortcut(QKeySequence('-'),
                  self).activated.connect(buttons_functions[15])
        QShortcut(QKeySequence('0'),
                  self).activated.connect(buttons_functions[16])
        QShortcut(QKeySequence('.'),
                  self).activated.connect(buttons_functions[17])
        QShortcut(QKeySequence('Return'),
                  self).activated.connect(buttons_functions[18])
        QShortcut(QKeySequence('+'),
                  self).activated.connect(buttons_functions[19])

        for k in range(20):
            buttons.append(QPushButton(labels[k]))
            buttons[k].clicked.connect(buttons_functions[k])
            calc_grid.addWidget(buttons[k], 2 + k // 4, k % 4)

        self.display()

    def add(self, c):
        if c in '0123456789':
            if not self.modif:
                self.stack.append(0)
                self.modif = True
            self.addNumeral(int(c))
        elif c == '.':
            if not self.modif:
                self.stack.append(0)
                self.modif = True
            self.point = True
        elif c == 'CE' and self.modif:
            self.stack[-1] = 0
            self.point = False
            self.zeros = 0
            self.n_dec = 0
        else:
            self.point = False
            self.zeros = 0
            self.n_dec = 0
            if c == 'Ent':
                self.modif = True
                self.stack.append(0)
            elif c in ('√', 'x²'):
                if c == '√' and self.stack[-1] >= 0:
                    self.stack[-1] = math.sqrt(self.stack[-1])
                    self.modif = False
                else:
                    self.stack[-1] = self.stack[-1]**2
                    self.modif = False
            elif c in '+-×÷':
                if len(self.stack) >= 2:
                    if c == '+':
                        self.stack[-2] = self.stack[-2] + self.stack[-1]
                        del self.stack[-1]
                        self.modif = False
                    elif c == '-':
                        self.stack[-2] = self.stack[-2] - self.stack[-1]
                        del self.stack[-1]
                        self.modif = False
                    elif c == '×':
                        self.stack[-2] = self.stack[-2] * self.stack[-1]
                        del self.stack[-1]
                        self.modif = False
                    elif self.stack[-1] != 0:
                        self.stack[-2] = self.stack[-2] / self.stack[-1]
                        del self.stack[-1]
                        self.modif = False
        self.display()

    def addNumeral(self, n):
        if self.point:
            self.n_dec += 1
            if n != 0:
                self.stack[-1] += n / 10**self.n_dec
                self.zeros = 0
            else:
                self.zeros += 1
        else:
            self.stack[-1] = self.stack[-1] * 10 + n

    def display(self):
        if self.point and self.stack[-1] == int(self.stack[-1]):
            self.screen.display(str(self.stack[-1]) + '.' + self.zeros * '0')
        else:
            self.screen.display(str(self.stack[-1]) + self.zeros * '0')
        if len(self.stack) > 1:
            self.little_screen.display(self.stack[-2])
        else:
            self.little_screen.display("")

    def reset(self):
        self.stack = [0]
        self.point = False
        self.n_dec = 0
        self.zeros = 0
        self.modif = True
        self.display()
Ejemplo n.º 8
0
class timeDigitalWidget(QWidget):

    time = pyqtSignal()
    def __init__(self,winParent, percentaje):
        super(timeDigitalWidget, self).__init__()
        self.winParent=winParent
        self.seconds = 900
        self.pose3d = pose3d
        self.percentaje = percentaje
        self.show = False
        self.MAX_PERCENT = 30
        self.MAX_MARK = 10

        self.hLayout = QHBoxLayout()

        timeLabel = QLabel("Time")
        self.lcd = QLCDNumber(self)
        self.lcd.setMaximumSize(100,50)
        self.hLayout.addWidget(timeLabel,0)
        self.hLayout.addWidget(self.lcd, 1)

        hSpacer = QSpacerItem(300, 30, QSizePolicy.Ignored, QSizePolicy.Ignored)
        self.hLayout.addItem(hSpacer)

        self.setLayout(self.hLayout)

        timer = QTimer(self)
        timer.start(1000)
        timer.timeout.connect(self.printTime)

        # get the palette
        palette = self.lcd.palette()

        # foreground color
        palette.setColor(palette.WindowText, QColor(85, 85, 255))
        # background color
        palette.setColor(palette.Background, QColor(0, 170, 255))
        # "light" border
        palette.setColor(palette.Light, QColor(255, 0, 0))
        # "dark" border
        palette.setColor(palette.Dark, QColor(0, 255, 0))

        # set the palette
        self.lcd.setPalette(palette)

    def showMark(self):
        self.show = True
        mark = self.testPercentaje()
        markLabel = QLabel('Final mark: ' + str(mark))
        self.hLayout.addWidget(markLabel, 0)
        self.setLayout(self.hLayout)

    def printTime(self):

        if self.seconds > 0:
            self.seconds -= 1
        else:
            if not self.show:
                self.showMark()
        self.lcd.display(self.seconds)


    def testPercentaje(self):
        pHouse = self.percentaje.calculatePercentaje()
        markPerc = float(pHouse) * float(self.MAX_MARK) / float(self.MAX_PERCENT)
        if pHouse > self.MAX_PERCENT:
            markPerc = 10
        return markPerc
Ejemplo n.º 9
0
class tiempoDigitalWidget(QWidget):

    time = pyqtSignal()

    def __init__(self, winParent, porcentaje):
        super(tiempoDigitalWidget, self).__init__()
        self.winParent = winParent
        self.seconds = 900
        self.pose3d = pose3d
        self.porcentaje = porcentaje
        self.show = False
        self.MAX_PERCENT = 30
        self.MAX_NOTA = 10

        self.hLayout = QHBoxLayout()

        tiempoLabel = QLabel("Tiempo")
        self.lcd = QLCDNumber(self)
        self.lcd.setMaximumSize(100, 50)
        self.hLayout.addWidget(tiempoLabel, 0)
        self.hLayout.addWidget(self.lcd, 1)

        hSpacer = QSpacerItem(300, 30, QSizePolicy.Ignored,
                              QSizePolicy.Ignored)
        self.hLayout.addItem(hSpacer)

        self.setLayout(self.hLayout)

        timer = QTimer(self)
        timer.start(1000)
        timer.timeout.connect(self.printTime)

        # get the palette
        palette = self.lcd.palette()

        # foreground color
        palette.setColor(palette.WindowText, QColor(85, 85, 255))
        # background color
        palette.setColor(palette.Background, QColor(0, 170, 255))
        # "light" border
        palette.setColor(palette.Light, QColor(255, 0, 0))
        # "dark" border
        palette.setColor(palette.Dark, QColor(0, 255, 0))

        # set the palette
        self.lcd.setPalette(palette)

    def showNota(self):
        self.show = True
        nota = self.testPorcentaje()
        notaLabel = QLabel('Nota final: ' + str(nota))
        self.hLayout.addWidget(notaLabel, 0)
        self.setLayout(self.hLayout)

    def printTime(self):
        if self.seconds > 0:
            self.seconds -= 1
        else:
            if not self.show:
                self.showNota()
        self.lcd.display(self.seconds)

    def testPorcentaje(self):
        pCasa = self.porcentaje.calculatePercentaje()
        notaPorc = pCasa * self.MAX_NOTA / self.MAX_PERCENT
        if pCasa > self.MAX_PERCENT:
            notaPorc = 10
        return notaPorc
Ejemplo n.º 10
0
class SettingsInterface:
    def __init__(self, variable, signals):
        self.signals = signals
        self.create_interface(variable)

    def create_interface(self, variable):
        self.__setting_box = QHBoxLayout()

        self.__setting_box.addWidget(QLabel("Settings:"))
        self.__setting_box.addWidget(QLabel('N='))
        self.__setting_box.addWidget(variable['n'])
        self.__setting_box.addWidget(QLabel('M='))
        self.__setting_box.addWidget(variable['m'])
        self.__setting_box.addWidget(QLabel('Mines='))
        self.__setting_box.addWidget(variable['mines'])
        self.__setting_box.addWidget(variable['ok_button'])
        self.__setting_box.addWidget(variable['pause_button'])

        self.__statistics_box = QHBoxLayout()

        self.time_display = QLCDNumber()
        self.time_display.setFrameShape(QFrame.NoFrame)
        self.time_display.setMaximumSize(80, 40)
        self.time_display.setMinimumSize(80, 40)
        self.bombs_display = QLCDNumber()
        self.bombs_display.setMaximumSize(80, 40)
        self.bombs_display.setMinimumSize(80, 40)
        self.bombs_display.setFrameShape(QFrame.NoFrame)
        self.signals.update_time_display.connect(self.update_time)
        self.signals.update_bombs_display.connect(self.update_bombs)

        clock = QPushButton()
        clock.setStyleSheet('border: none;')
        clock.setIcon(QtGui.QIcon('../Images/clock.png'))
        clock.setMaximumSize(40, 40)
        clock.clicked.connect(self.paint_clock)
        self.clock_click = False

        bomb = QPushButton()
        bomb.setStyleSheet('border: none;')
        bomb.setIcon(QtGui.QIcon('../Images/bomb.png'))
        bomb.setMaximumSize(40, 40)
        bomb.clicked.connect(self.paint_bomb)
        self.bomb_click = False

        self.__statistics_box.addWidget(clock)
        self.__statistics_box.addWidget(self.time_display)
        self.__statistics_box.addWidget(bomb)
        self.__statistics_box.addWidget(self.bombs_display)

    def paint_clock(self):
        if not self.clock_click:
            self.clock_click = True
            self.time_display.setStyleSheet('font-size: 12px;'
                               'font-family: Arial;color: rgb(255, 255, 255);'
                               'background-color: rgb(38,56,76);')
        else:
            self.clock_click = False
            self.time_display.setStyleSheet(None)

    def paint_bomb(self):
        if not self.bomb_click:
            self.bomb_click = True
            self.bombs_display.setStyleSheet('font-size: 12px;'
                                            'font-family: Arial;color: rgb(255, 255, 255);'
                                            'background-color: rgb(38,56,76);')
        else:
            self.bomb_click = False
            self.bombs_display.setStyleSheet(None)

    def update_time(self):
        self.time_display.display(globals.time)

    def update_bombs(self):
        self.bombs_display.display(globals.flag_bombs)

    def layout(self):
        frame = QFrame()
        frame.setFrameShape(QFrame.StyledPanel)
        self.__layout = QVBoxLayout()
        self.__layout.addLayout(self.__setting_box)
        self.__layout.addLayout(self.__statistics_box)
        self.__layout.addStretch(1)
        self.__layout.setSpacing(10)
        frame.setLayout(self.__layout)
        frame.setMaximumSize(560, 126)

        layout = QVBoxLayout()
        layout.addWidget(frame)

        return layout