def createLCD(self, mode): lcd = QLCDNumber(self) lcd.setMode(mode) lcd.setMinimumHeight(50) lcd.setMinimumWidth(160) lcd.setDigitCount(8) if mode == QLCDNumber.Bin: lcd.display("00000000") else: lcd.display(0) lcd.setSegmentStyle(QLCDNumber.Flat) lcd.setAutoFillBackground(True) palette = lcd.palette() palette.setColor(QPalette.Normal, QPalette.Foreground, Qt.blue) palette.setColor(QPalette.Normal, QPalette.Background, Qt.lightGray) lcd.setPalette(palette) return lcd
class MyTimer(QWidget): def __init__(self): QWidget.__init__(self) self.setWindowTitle(u"Цифровые часы") timer = QTimer(self) self.connect(timer, SIGNAL("timeout()"), self.updtTime) self.myTimeDisplay = QLCDNumber(self) self.myTimeDisplay.setSegmentStyle(QLCDNumber.Filled) self.myTimeDisplay.setDigitCount(8) self.myTimeDisplay.resize(500, 150) timer.start(1000) def updtTime(self): currentTime = QDateTime.currentDateTime().toString("hh:mm:ss") self.myTimeDisplay.display(currentTime)
class MyTimer(QWidget): def __init__(self): QWidget.__init__(self) self.setWindowTitle(u'Цифровые часы') timer = QTimer(self) self.connect(timer, SIGNAL("timeout()"), self.updtTime) self.myTimeDisplay = QLCDNumber(self) self.myTimeDisplay.setSegmentStyle(QLCDNumber.Filled) self.myTimeDisplay.setDigitCount(8) self.myTimeDisplay.resize(500, 150) timer.start(1000) def updtTime(self): currentTime = QDateTime.currentDateTime().toString('hh:mm:ss') self.myTimeDisplay.display(currentTime)
class LayoutTemperature(QHBoxLayout): def __init__(self, parent): super(LayoutTemperature, self).__init__() self.settings(parent) def settings(self, parent): # CRIANDO O GRUPOBOXTEMPS PARA POR OS LABELS E LCD'S self.groupBoxTemps = QGroupBox(parent) # CRIANDO O LABEL PARA INFORMAR O QUE O LCD ESTÁ MOSTRANDO self.lbTemp1 = QLabel(self.groupBoxTemps) self.lbTemp1.setGeometry(QRect(70, 10, 127, 10)) self.lbTemp1.setMaximumSize(QSize(16777215, 10)) self.lbTemp1.setText("Termometro 1") self.lbTemp1.setAlignment(Qt.AlignCenter) # CRIANDO O LABEL PARA INFORMAR O QUE O LCD ESTÁ MOSTRANDO self.lbTemp2 = QLabel(self.groupBoxTemps) self.lbTemp2.setGeometry(QRect(330, 10, 130, 10)) self.lbTemp2.setMaximumSize(QSize(16777215, 10)) self.lbTemp2.setText("Termometro 2") self.lbTemp2.setAlignment(Qt.AlignCenter) # CRIANDO O LCD PARA INFORMAR A TEMPERATURA DO TERMOMETRO 1 self.lcdTemp1 = QLCDNumber(self.groupBoxTemps) self.lcdTemp1.setGeometry(QRect(30, 30, 211, 71)) self.lcdTemp1.display("00.00") self.lcdTemp1.setDigitCount(6) # CRIANDO O LCD PARA INFORMAR A TEMPERATURA DO TERMOMETRO 2 self.lcdTemp2 = QLCDNumber(self.groupBoxTemps) self.lcdTemp2.setGeometry(QRect(290, 30, 211, 71)) self.lcdTemp2.display("00.00") self.lcdTemp2.setDigitCount(6) # COLOCANDO LAYOUT NO GRUPOBOXTEMPS self.addWidget(self.groupBoxTemps)
class LayoutTimeCurrent(QVBoxLayout): def __init__(self, parent): super(LayoutTimeCurrent, self).__init__() self.settings(parent) def settings(self, parent): # CRIANDO O GRUPOBOXTIMECURRENTE PARA COLOCAR O LABEL E O LCD # PARA CONTROLAR O TEMPO self.groupBoxTimeCurrent = QGroupBox(parent) # CRIANDO O LABEL DE INFORMAR O QUE É O LCD ESTÁ MOSTRANDO self.lbTimeCurrent = QLabel(self.groupBoxTimeCurrent) self.lbTimeCurrent.setGeometry(QRect(230, 0, 91, 20)) self.lbTimeCurrent.setMaximumSize(QSize(16777215, 20)) self.lbTimeCurrent.setText("Tempo percorrido") # CRIANDO O LCD PARA MOSTRAR O TEMPO PERCORRIDO self.lcdTimeCurrent = QLCDNumber(self.groupBoxTimeCurrent) self.lcdTimeCurrent.setGeometry(QRect(140, 20, 251, 81)) self.lcdTimeCurrent.setDigitCount(8) self.lcdTimeCurrent.display("00:00:00") # COLOCANDO LAYOUT NO GRUPOBOXTIMECURRENT self.addWidget(self.groupBoxTimeCurrent)
class MainWindow(QWidget): # set up signals resetClicked = pyqtSignal() inputChanged = pyqtSignal() input_one = None def __init__(self, parent=None): super(MainWindow, self).__init__(parent) # -------------------------------------------------------- # main window self.setObjectName("Multiply") self.resize(400, 300) # label self.label = QLabel(self) self.label.setGeometry(QRect(20, 10, 250, 50)) self.label.setText("Multiply two numbers!") # self.label.show() # input frame self.input_frame = QFrame(self) self.input_frame.setGeometry(QRect(20, 60, 350, 130)) self.input_frame.setFrameShape(QFrame.StyledPanel) self.input_frame.setFrameShadow(QFrame.Raised) # set the layout of the frame self.verticalLayout = QVBoxLayout(self.input_frame) self.verticalLayout.setObjectName("verticalLayout") # first input self.input_one = QDoubleSpinBox(self.input_frame) self.input_one.setObjectName("input_one") self.input_one.setDecimals(4) self.input_one.setSingleStep(0.01) self.verticalLayout.addWidget(self.input_one) # second input self.input_two = QDoubleSpinBox(self.input_frame) self.input_two.setObjectName("input_two") self.input_two.setDecimals(4) self.input_two.setSingleStep(0.01) self.verticalLayout.addWidget(self.input_two) # LCD result self.result_lcd = QLCDNumber(self) self.result_lcd.setObjectName("result_lcd") self.result_lcd.setGeometry(QRect(20, 200, 350, 80)) self.result_lcd.setDigitCount(10) self.result_lcd.setSmallDecimalPoint(True) # Reset Button self.reset_button = QPushButton(self) self.reset_button.setGeometry(QRect(270, 10, 100, 30)) self.reset_button.setObjectName("reset_button") self.reset_button.setText("Reset") # -------------------------------------------------------- # connect slots self.reset_button.clicked.connect(self.onResetClick) self.input_one.valueChanged.connect(self.onInputChanged) self.input_two.valueChanged.connect(self.onInputChanged) # define slots def onResetClick(self): self.resetClicked.emit() def onInputChanged(self): self.inputChanged.emit() def setResult(self, value): self.result_lcd.display(value)
class Ui_MainWindow(QMainWindow): def __init__(self): super(Ui_MainWindow, self).__init__(None) self.setupUi() self.serial = ComunicacaoArduino.start_communication() self.controle = ControlInterface() self.dadosTempo = [] self.dados = [] def startThreadTime(self): self.controle.starThreadTime(self) def startThreadMonitora(self): self.buttonStart.setDisabled(True) self.buttonStop.setDisabled(False) self.controle.starThreadMonitora(self.serial, self) def stopThreadMonitora(self): self.controle.stopThreadMonitora() self.controle.starThreadGravadora(self.LEditArqDes.text(), self.dados) def stopThreadTime(self): self.controle.stopThreadTime() def startThreads(self): if self.LEditArqDes.text() != '': self.startThreadMonitora() self.startThreadTime() else: reply = QMessageBox.critical(self, 'Aviso', "Selecione onde quer salvar o arquivo!", QMessageBox.Ok) def stopThreads(self): self.stopThreadMonitora() self.stopThreadTime() def setTemps(self, temps): self.lcdTemp1.display(temps[0]) self.lcdTemp2.display(temps[1]) temps.append(self.dadosTempo[len(self.dadosTempo)-1]) self.dados.append(temps) def setTime(self, time): if time not in self.dadosTempo: self.lcdTime.display(time) self.dadosTempo.append(time) def setupUi(self): self.setMaximumSize(580, 460) self.setMinimumSize(580, 460) self.centralWidget = QWidget(self) self.setCentralWidget(self.centralWidget) self.gridLayout = QGridLayout(self.centralWidget) self.gridLayout.setMargin(11) self.gridLayout.setSpacing(6) self.cboxSetupAndActions() self.cboxTemps() self.currentTime() def cboxSetupAndActions(self): self.HLayoutSetupAndActions = QHBoxLayout() self.HLayoutSetupAndActions.setMargin(11) self.HLayoutSetupAndActions.setSpacing(6) self.groupBoxSetupAndActions = QGroupBox(self.centralWidget) self.groupBoxSetupAndActions.setTitle("Configurações e Ações") self.buttonStart = QPushButton(self.groupBoxSetupAndActions) self.buttonStart.setGeometry(QRect(270, 80, 121, 23)) self.buttonStart.setText("Start") self.buttonStart.clicked.connect(self.startThreads) icon = QIcon() icon.addPixmap(QPixmap("View\\Imagens\\start_icon.png"), QIcon.Normal, QIcon.Off) self.buttonStart.setIcon(icon) self.buttonStop = QPushButton(self.groupBoxSetupAndActions) self.buttonStop.setGeometry(QRect(400, 80, 121, 23)) self.buttonStop.setText("Stop") self.buttonStop.clicked.connect(self.stopThreads) self.buttonStop.setDisabled(True) self.LbArqDes = QLabel("Selecione onde quer salvar o novo arquivo:", self.groupBoxSetupAndActions) self.LbArqDes.setGeometry(QRect(20, 20, 220, 16)) self.LEditArqDes = QLineEdit(self.groupBoxSetupAndActions) self.LEditArqDes.setReadOnly(True) self.LEditArqDes.setGeometry(QRect(20, 40, 350, 21)) self.BtnBrowser2 = QPushButton("Browser...", self.groupBoxSetupAndActions) self.BtnBrowser2.clicked.connect(self.pegaArqDestino) self.BtnBrowser2.setGeometry(QRect(370, 39, 80, 23)) icon = QIcon() icon.addPixmap(QPixmap(("View\\Imagens\\pasta.png")), QIcon.Normal, QIcon.Off) self.BtnBrowser2.setIcon(icon) self.HLayoutSetupAndActions.addWidget(self.groupBoxSetupAndActions) self.gridLayout.addLayout(self.HLayoutSetupAndActions, 2, 0, 1, 1) def cboxTemps(self): self.hlLcdsTemp = QHBoxLayout() self.hlLcdsTemp.setMargin(11) self.hlLcdsTemp.setSpacing(6) self.groupBoxLcdsTemp = QGroupBox(self.centralWidget) self.lbTemp1 = QLabel(self.groupBoxLcdsTemp) self.lbTemp1.setGeometry(QRect(70, 10, 127, 10)) self.lbTemp1.setText('Termômetro 1') self.lbTemp1.setAlignment(Qt.AlignCenter) self.lbTemp2 = QLabel(self.groupBoxLcdsTemp) self.lbTemp2.setGeometry(QRect(330, 10, 130, 10)) self.lbTemp2.setText('Termômetro 2') self.lbTemp2.setAlignment(Qt.AlignCenter) self.lcdTemp1 = QLCDNumber(self.groupBoxLcdsTemp) self.lcdTemp1.setGeometry(QRect(30, 30, 211, 71)) self.lcdTemp1.display("00.00") self.lcdTemp2 = QLCDNumber(self.groupBoxLcdsTemp) self.lcdTemp2.setGeometry(QRect(290, 30, 211, 71)) self.lcdTemp2.display("00.00") self.hlLcdsTemp.addWidget(self.groupBoxLcdsTemp) self.gridLayout.addLayout(self.hlLcdsTemp, 0, 0, 1, 1) def currentTime(self): self.verticalLayout_3 = QVBoxLayout() self.verticalLayout_3.setMargin(11) self.verticalLayout_3.setSpacing(6) self.groupBox_2 = QGroupBox(self.centralWidget) self.groupBox_2.setTitle("") self.lbCurrentTime = QLabel(self.groupBox_2) self.lbCurrentTime.setGeometry(QRect(230, 0, 91, 20)) self.lbCurrentTime.setText("Tempo percorrido") self.lcdTime = QLCDNumber(self.groupBox_2) self.lcdTime.setGeometry(QRect(140, 20, 251, 81)) self.lcdTime.setDigitCount(8) self.lcdTime.display("00:00:00") self.verticalLayout_3.addWidget(self.groupBox_2) self.gridLayout.addLayout(self.verticalLayout_3, 1, 0, 1, 1) def pegaArqDestino(self): reply = QMessageBox.information(self, 'Aviso', "Selecione a pasta para salvar o arquivo", QMessageBox.Ok) self.nome_arquivoDestino = QFileDialog.getSaveFileName(self, "Selecionar o local para salvar o arquivo", filter="All(*.csv)") ##Abre um arquivo self.LEditArqDes.setText(self.nome_arquivoDestino)
class WCounters(QWidget, Logger.ClassLogger): """ Widget to display some counters """ def __init__(self, parent=None): """ Constructs WCounter widget @param parent: @type parent: """ QWidget.__init__(self, parent) self.parent = parent self.name = self.tr("Counters") self.tests_stats = {} self.createWidgets() self.createConnections() self.createActions() self.deactivate() def createWidgets(self): """ QtWidgets creation """ self.setContextMenuPolicy(Qt.CustomContextMenu) mainLayout = QVBoxLayout() gridLayout = QGridLayout() font = QFont(FONT_NAME, FONT_SIZE) font.setBold(True) self.passLabel = QLabel("PASS") self.passLabel.setFont(font) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.passLabel.setPalette(passPalette) self.passLabel.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.failLabel = QLabel("FAILED") self.failLabel.setFont(font) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.failLabel.setPalette(failPalette) self.failLabel.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.undefLabel = QLabel("UNDEFINED") font2 = QFont(FONT_NAME, FONT_SIZE2) font2.setBold(False) self.undefLabel.setFont(font2) self.undefLabel.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.totalLabel = QLabel() self.totalLabel.setStyleSheet("""background-color: #EAEAEA; background-image: url(:/main_logo.png); background-position: center; background-repeat: no-repeat; background-attachment: fixed;""") self.totalLabel.setAlignment(Qt.AlignHCenter) self.logoLabel = QLabel() # testglobal self.counterTgPass = QLCDNumber(self) try: # this function does not exist on linux centos 6.3 self.counterTgPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTgPass.setSegmentStyle(QLCDNumber.Flat) self.counterTgPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTgPass.setPalette(passPalette) self.counterTgFail = QLCDNumber(self) try: self.counterTgFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTgFail.setSegmentStyle(QLCDNumber.Flat) self.counterTgFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTgFail.setPalette(failPalette) self.counterTgUndef = QLCDNumber(self) try: self.counterTgUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTgUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTgUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTgUndef.setPalette(underPalette) self.counterTgTotal = QLCDNumber(self) self.counterTgTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTgTotal.setFrameShape(QFrame.NoFrame) # testplan self.counterTpPass = QLCDNumber(self) try: self.counterTpPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTpPass.setSegmentStyle(QLCDNumber.Flat) self.counterTpPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTpPass.setPalette(passPalette) self.counterTpFail = QLCDNumber(self) try: self.counterTpFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTpFail.setSegmentStyle(QLCDNumber.Flat) self.counterTpFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTpFail.setPalette(failPalette) self.counterTpUndef = QLCDNumber(self) try: self.counterTpUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTpUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTpUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTpUndef.setPalette(underPalette) self.counterTpTotal = QLCDNumber(self) self.counterTpTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTpTotal.setFrameShape(QFrame.NoFrame) # testsuites self.counterTsPass = QLCDNumber(self) try: self.counterTsPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTsPass.setSegmentStyle(QLCDNumber.Flat) self.counterTsPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTsPass.setPalette(passPalette) self.counterTsFail = QLCDNumber(self) try: self.counterTsFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTsFail.setSegmentStyle(QLCDNumber.Flat) self.counterTsFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTsFail.setPalette(failPalette) self.counterTsUndef = QLCDNumber(self) try: self.counterTsUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTsUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTsUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTsUndef.setPalette(underPalette) self.counterTsTotal = QLCDNumber(self) self.counterTsTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTsTotal.setFrameShape(QFrame.NoFrame) # testunit self.counterTuPass = QLCDNumber(self) try: self.counterTuPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTuPass.setSegmentStyle(QLCDNumber.Flat) self.counterTuPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTuPass.setPalette(passPalette) self.counterTuFail = QLCDNumber(self) try: self.counterTuFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTuFail.setSegmentStyle(QLCDNumber.Flat) self.counterTuFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTuFail.setPalette(failPalette) self.counterTuUndef = QLCDNumber(self) try: self.counterTuUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTuUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTuUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTuUndef.setPalette(underPalette) self.counterTuTotal = QLCDNumber(self) self.counterTuTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTuTotal.setFrameShape(QFrame.NoFrame) # testabstracts self.counterTaPass = QLCDNumber(self) try: self.counterTaPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTaPass.setSegmentStyle(QLCDNumber.Flat) self.counterTaPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTaPass.setPalette(passPalette) self.counterTaFail = QLCDNumber(self) try: self.counterTaFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTaFail.setSegmentStyle(QLCDNumber.Flat) self.counterTaFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTaFail.setPalette(failPalette) self.counterTaUndef = QLCDNumber(self) try: self.counterTaUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTaUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTaUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTaUndef.setPalette(underPalette) self.counterTaTotal = QLCDNumber(self) self.counterTaTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTaTotal.setFrameShape(QFrame.NoFrame) # testcases self.counterTcPass = QLCDNumber(self) try: self.counterTcPass.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTcPass.setSegmentStyle(QLCDNumber.Flat) self.counterTcPass.setFrameShape(QFrame.NoFrame) passPalette = QPalette() passPalette.setColor(QPalette.WindowText, Qt.darkGreen) self.counterTcPass.setPalette(passPalette) self.counterTcFail = QLCDNumber(self) try: self.counterTcFail.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTcFail.setSegmentStyle(QLCDNumber.Flat) self.counterTcFail.setFrameShape(QFrame.NoFrame) failPalette = QPalette() failPalette.setColor(QPalette.WindowText, Qt.red) self.counterTcFail.setPalette(failPalette) self.counterTcUndef = QLCDNumber(self) try: self.counterTcUndef.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTcUndef.setSegmentStyle(QLCDNumber.Flat) self.counterTcUndef.setFrameShape(QFrame.NoFrame) underPalette = QPalette() underPalette.setColor(QPalette.WindowText, Qt.darkBlue) self.counterTcUndef.setPalette(underPalette) self.counterTcTotal = QLCDNumber(self) try: self.counterTcTotal.setDigitCount(NB_LCD_DIGITS) except AttributeError: pass self.counterTcTotal.setSegmentStyle(QLCDNumber.Flat) self.counterTcTotal.setFrameShape(QFrame.NoFrame) font2 = QFont(FONT_NAME, FONT_SIZE2) font2.setBold(True) self.tgLabel = QLabel("Tests\nGlobal") self.tgLabel.setFont(font2) self.tgLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.tpLabel = QLabel("Tests\nPlan") self.tpLabel.setFont(font2) self.tpLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.tsLabel = QLabel("Tests\nSuite") self.tsLabel.setFont(font2) self.tsLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.tuLabel = QLabel("Tests\nUnit") self.tuLabel.setFont(font2) self.tuLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.taLabel = QLabel("Tests\nAbstract") self.taLabel.setFont(font2) self.taLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.tcLabel = QLabel("Tests\nCase") self.tcLabel.setFont(font2) self.tcLabel.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.totLabel = QLabel("TOTAL") self.totLabel.setFont(font2) self.totLabel.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) font3 = QFont(FONT_NAME, FONT_SIZE3) font3.setItalic(True) self.totPassValue = QLabel("0<br />0%") self.totPassValue.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.totPassValue.setFont(font3) self.totFailedValue = QLabel("0<br />0%") self.totFailedValue.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.totFailedValue.setFont(font3) self.totUndefValue = QLabel("0<br />0%") self.totUndefValue.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.totUndefValue.setFont(font3) self.totValue = QLabel("0<br />0%") self.totValue.setFont(font3) self.totValue.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) #gridLayout.addWidget(self.totalLabel, 0, 0) gridLayout.addWidget(self.tgLabel, 0, 1) gridLayout.addWidget(self.tpLabel, 0, 2) gridLayout.addWidget(self.tsLabel, 0, 3) gridLayout.addWidget(self.tuLabel, 0, 4) gridLayout.addWidget(self.taLabel, 0, 5) gridLayout.addWidget(self.tcLabel, 0, 6) gridLayout.addWidget(self.passLabel, 1, 0) gridLayout.addWidget(self.counterTgPass, 1, 1) gridLayout.addWidget(self.counterTpPass, 1, 2) gridLayout.addWidget(self.counterTsPass, 1, 3) gridLayout.addWidget(self.counterTuPass, 1, 4) gridLayout.addWidget(self.counterTaPass, 1, 5) gridLayout.addWidget(self.counterTcPass, 1, 6) gridLayout.addWidget(self.failLabel, 2, 0) gridLayout.addWidget(self.counterTgFail, 2, 1) gridLayout.addWidget(self.counterTpFail, 2, 2) gridLayout.addWidget(self.counterTsFail, 2, 3) gridLayout.addWidget(self.counterTuFail, 2, 4) gridLayout.addWidget(self.counterTaFail, 2, 5) gridLayout.addWidget(self.counterTcFail, 2, 6) gridLayout.addWidget(self.undefLabel, 3, 0) gridLayout.addWidget(self.counterTgUndef, 3, 1) gridLayout.addWidget(self.counterTpUndef, 3, 2) gridLayout.addWidget(self.counterTsUndef, 3, 3) gridLayout.addWidget(self.counterTuUndef, 3, 4) gridLayout.addWidget(self.counterTaUndef, 3, 5) gridLayout.addWidget(self.counterTcUndef, 3, 6) gridLayout.addWidget(self.counterTgTotal, 4, 1) gridLayout.addWidget(self.counterTpTotal, 4, 2) gridLayout.addWidget(self.counterTsTotal, 4, 3) gridLayout.addWidget(self.counterTuTotal, 4, 4) gridLayout.addWidget(self.counterTaTotal, 4, 5) gridLayout.addWidget(self.counterTcTotal, 4, 6) gridLayout.addWidget(self.totLabel, 0, 7) gridLayout.addWidget(self.totPassValue, 1, 7) gridLayout.addWidget(self.totFailedValue, 2, 7) gridLayout.addWidget(self.totUndefValue, 3, 7) gridLayout.addWidget(self.totValue, 4, 7) mainLayout.addLayout(gridLayout) self.setLayout(mainLayout) def createConnections(self): """ Create connections """ self.customContextMenuRequested.connect(self.onPopupMenu) def createActions(self): """ Create qt actions """ self.resetAction = QtHelper.createAction( self, "&Reset Statistics", self.resetStats, tip='Reset all statistics', icon=QIcon(":/reset-counter.png")) def onPopupMenu(self, pos): """ On popup menu """ self.menu = QMenu() self.menu.addAction(self.resetAction) self.menu.addSeparator() self.menu.popup(self.mapToGlobal(pos)) def resetStats(self): """ Reset statistic manually """ reply = QMessageBox.question(self, "Reset statistics", "Are you sure ?", QMessageBox.Yes | QMessageBox.No) if reply == QMessageBox.Yes: RCI.instance().resetTestsMetrics() def active(self): """ Enables """ self.resetAction.setEnabled(True) def deactivate(self): """ Clears QTreeWidget and disables it """ self.resetAction.setEnabled(False) def resetCounters(self): """ Reset counters """ counters = { 'testglobals': { 'nb-pass': 0, 'nb-fail': 0, 'nb-undef': 0 }, 'testplans': { 'nb-pass': 0, 'nb-fail': 0, 'nb-undef': 0 }, 'testsuites': { 'nb-pass': 0, 'nb-fail': 0, 'nb-undef': 0 }, 'testunits': { 'nb-pass': 0, 'nb-fail': 0, 'nb-undef': 0 }, 'testabstracts': { 'nb-pass': 0, 'nb-fail': 0, 'nb-undef': 0 }, 'testcases': { 'nb-pass': 0, 'nb-fail': 0, 'nb-undef': 0 } } self.loadData(counters=counters) def loadData(self, counters): """ Load value of each counters @param parent: @type parent: """ self.tests_stats = counters self.counterTgPass.display(counters['testglobals']['nb-pass']) self.counterTgFail.display(counters['testglobals']['nb-fail']) self.counterTgUndef.display(counters['testglobals']['nb-undef']) self.counterTgTotal.display(counters['testglobals']['nb-pass'] + counters['testglobals']['nb-fail'] + counters['testglobals']['nb-undef']) self.counterTpPass.display(counters['testplans']['nb-pass']) self.counterTpFail.display(counters['testplans']['nb-fail']) self.counterTpUndef.display(counters['testplans']['nb-undef']) self.counterTpTotal.display(counters['testplans']['nb-pass'] + counters['testplans']['nb-fail'] + counters['testplans']['nb-undef']) self.counterTsPass.display(counters['testsuites']['nb-pass']) self.counterTsFail.display(counters['testsuites']['nb-fail']) self.counterTsUndef.display(counters['testsuites']['nb-undef']) self.counterTsTotal.display(counters['testsuites']['nb-pass'] + counters['testsuites']['nb-fail'] + counters['testsuites']['nb-undef']) self.counterTuPass.display(counters['testunits']['nb-pass']) self.counterTuFail.display(counters['testunits']['nb-fail']) self.counterTuUndef.display(counters['testunits']['nb-undef']) self.counterTuTotal.display(counters['testunits']['nb-pass'] + counters['testunits']['nb-fail'] + counters['testunits']['nb-undef']) self.counterTaPass.display(counters['testabstracts']['nb-pass']) self.counterTaFail.display(counters['testabstracts']['nb-fail']) self.counterTaUndef.display(counters['testabstracts']['nb-undef']) self.counterTaTotal.display(counters['testabstracts']['nb-pass'] + counters['testabstracts']['nb-fail'] + counters['testabstracts']['nb-undef']) self.counterTcPass.display(counters['testcases']['nb-pass']) self.counterTcFail.display(counters['testcases']['nb-fail']) self.counterTcUndef.display(counters['testcases']['nb-undef']) self.counterTcTotal.display(counters['testcases']['nb-pass'] + counters['testcases']['nb-fail'] + counters['testcases']['nb-undef']) nbPass = counters['testglobals']['nb-pass']+counters['testplans']['nb-pass']+counters['testsuites']['nb-pass']+counters['testunits']['nb-pass'] \ + counters['testabstracts']['nb-pass']+counters['testcases']['nb-pass'] nbUndef = counters['testglobals']['nb-undef']+counters['testplans']['nb-undef']+counters['testsuites']['nb-undef']+counters['testunits']['nb-undef'] \ + counters['testabstracts']['nb-undef'] + counters['testcases']['nb-undef'] nbFailed = counters['testglobals']['nb-fail']+counters['testplans']['nb-fail']+counters['testsuites']['nb-fail']+counters['testunits']['nb-fail'] \ + counters['testabstracts']['nb-fail'] + counters['testcases']['nb-fail'] nbTot = nbPass + nbUndef + nbFailed if nbTot: self.totPassValue.setText( "%s<br />(%s%%)" % (nbPass, round((nbPass * 100) / float(nbTot), 1))) self.totFailedValue.setText( "%s<br />(%s%%)" % (nbFailed, round((nbFailed * 100) / float(nbTot), 1))) self.totUndefValue.setText( "%s<br />(%s%%)" % (nbUndef, round((nbUndef * 100) / float(nbTot), 1))) else: self.totPassValue.setText("0<br />(0%)") self.totFailedValue.setText("0<br />(0%)") self.totUndefValue.setText("0<br />(0%)") self.totValue.setText("%s" % nbTot) def refreshData(self, data, action): """ Refresh counters @param parent: @type parent: @param parent: @type parent: """ self.loadData(counters=data)