Module saePisan.view.components.ConsoleDialog
Classes
class ConsoleDialog (parent=None)-
Expand source code
class ConsoleDialog(QDialog): def __init__(self, parent=None): super().__init__(parent) self.setWindowTitle("R Console Output") self.setMinimumWidth(500) layout = QVBoxLayout(self) self.console = QTextEdit() self.console.setReadOnly(True) self.loading_label = QLabel() self.loading_label.setAlignment(Qt.AlignmentFlag.AlignCenter) self.loading_movie = QMovie("assets/loading.gif") self.loading_movie.setScaledSize(QSize(25, 25)) self.loading_label.setMovie(self.loading_movie) layout.addWidget(self.loading_label) self.loading_movie.start() layout.addWidget(self.console) def append_text(self, text): doc = self.console.document() block_count = doc.blockCount() if block_count > 1: cursor = self.console.textCursor() cursor.movePosition(QTextCursor.MoveOperation.End) cursor.movePosition(QTextCursor.MoveOperation.StartOfBlock, QTextCursor.MoveMode.KeepAnchor) cursor.removeSelectedText() cursor.deletePreviousChar() cursor.insertText(text) else: self.console.setPlainText(text) self.console.moveCursor(QTextCursor.MoveOperation.End) def stop_loading(self): self.loading_movie.stop() self.loading_label.setVisible(False)QDialog(parent: Optional[QWidget] = None, flags: Qt.WindowType = Qt.WindowFlags())
Ancestors
- PyQt6.QtWidgets.QDialog
- PyQt6.QtWidgets.QWidget
- PyQt6.QtCore.QObject
- PyQt6.sip.wrapper
- PyQt6.QtGui.QPaintDevice
- PyQt6.sip.simplewrapper
Methods
def append_text(self, text)-
Expand source code
def append_text(self, text): doc = self.console.document() block_count = doc.blockCount() if block_count > 1: cursor = self.console.textCursor() cursor.movePosition(QTextCursor.MoveOperation.End) cursor.movePosition(QTextCursor.MoveOperation.StartOfBlock, QTextCursor.MoveMode.KeepAnchor) cursor.removeSelectedText() cursor.deletePreviousChar() cursor.insertText(text) else: self.console.setPlainText(text) self.console.moveCursor(QTextCursor.MoveOperation.End) def stop_loading(self)-
Expand source code
def stop_loading(self): self.loading_movie.stop() self.loading_label.setVisible(False)