def __init__(self, parent, kernel_manager, banner=None):
super(JupyterConsoleWindow, self).__init__(parent)
self.setAttribute(Qt.WA_DeleteOnClose)
self.setWindowTitle('Jupyter console')
self._jupyter_widget = JupyterWidget(self, kernel_manager, banner)
self.on_close = lambda *_: None
self._log_handler = _make_jupyter_log_handler(self._jupyter_widget)
logging.root.addHandler(self._log_handler)
self._log_level_selector = QComboBox(self)
self._log_level_selector.setToolTip('Log entries of this severity and higher will appear in the console')
self._log_level_selector.setEditable(False)
self._log_level_selector.addItems(['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'])
self._log_level_selector.currentTextChanged.connect(
lambda: self._log_handler.setLevel(self._log_level_selector.currentText()))
self._log_level_selector.setCurrentIndex(1)
self._style_selector = QComboBox(self)
self._style_selector.setToolTip('Select standard color theme')
self._style_selector.setEditable(False)
self._style_selector.addItems(['lightbg', 'linux'])
self._style_selector.currentTextChanged.connect(
lambda: self._jupyter_widget.set_default_style(self._style_selector.currentText()))
self._style_selector.setCurrentIndex(0)
self._redirect_stdout_checkbox = QCheckBox('Redirect stdout', self)
self._redirect_stdout_checkbox.setToolTip('Show stdout output in this console')
self._redirect_stdout_checkbox.stateChanged.connect(self._update_stdout_redirection)
self._redirect_stdout_checkbox.setChecked(True)
layout = QVBoxLayout(self)
controls_layout = QHBoxLayout(self)
controls_layout.addWidget(QLabel('Log level:', self))
controls_layout.addWidget(self._log_level_selector)
controls_layout.addWidget(QLabel('Color theme:', self))
controls_layout.addWidget(self._style_selector)
controls_layout.addWidget(self._redirect_stdout_checkbox)
controls_layout.addStretch(1)
layout.addLayout(controls_layout)
layout.addWidget(self._jupyter_widget)
self.setLayout(layout)
self.resize(1000, 600)
评论列表
文章目录