Пример #1
0
class LogDialog(QDialog):
    def __init__(self, parent, rpt_file_path):
        self.rpt_file_path = rpt_file_path

        QDialog.__init__(self, parent)

        self.setWindowTitle('Log: ' + self.rpt_file_path)

        main_lay = QVBoxLayout(self)

        self.txt_log = QPlainTextEdit(self)
        self.txt_log.setMinimumWidth(500)
        self.txt_log.setMinimumHeight(300)
        main_lay.addWidget(self.txt_log)

        self.btn_close = QPushButton('Close')
        self.btn_close.clicked.connect(self.close_dialog)
        main_lay.addWidget(self.btn_close)

        self.fill_txt()

    def close_dialog(self):
        self.close()

    def fill_txt(self):
        with codecs.open(self.rpt_file_path, 'r', encoding='UTF-8') as inp_f:
            lines = inp_f.read().splitlines()

        for line in lines:
            self.txt_log.appendPlainText(line.replace('\b', ''))

        # Scroll up
        self.txt_log.moveCursor(QTextCursor.Start)
        self.txt_log.ensureCursorVisible()
Пример #2
0
 def on_actionShow_logfiles_triggered(self):
     self._item.setText(3, '')
     try:
         loglines = self._client.getServiceLogs(self._service,
                                                self._instance)
     except ClientError as err:
         self._item.setText(3, str(err))
         return
     if not loglines:
         self._item.setText(3, 'Service does not return logs')
         return
     dlg = QDialog(self)
     loadUi(dlg, 'details.ui')
     dlg.tabber.clear()
     logs = []
     for logline in loglines:
         filename, content = logline.split(':', 1)
         if not logs or filename != logs[-1][0]:
             logs.append((filename, []))
         logs[-1][1].append(content)
     for filename, content in logs:
         widget = QPlainTextEdit(dlg)
         font = widget.font()
         font.setFamily('Monospace')
         widget.setFont(font)
         widget.setPlainText(''.join(content))
         widget.moveCursor(QTextCursor.End)
         widget.ensureCursorVisible()
         dlg.tabber.addTab(widget, filename)
     dlg.exec_()