def __init__(self,
transpyler,
parent=None, *,
theme='dark',
header_text=None,
hide_console_margins=False):
assert transpyler
super().__init__(parent=parent, theme=theme)
self._transpyler = transpyler
self._header_text = header_text
self._hide_console_margins = hide_console_margins
self._console = self._createConsoleApp()
self._editor = self._createEditorApp()
self._editor.setConsole(self._console)
# Create buttons
run_button = QtWidgets.QPushButton('Run')
hideup_button = QtWidgets.QPushButton('\u25b2')
hidedown_button = QtWidgets.QPushButton('\u25bc')
run_button.setMaximumWidth(100)
hideup_button.setFixedWidth(35)
hidedown_button.setFixedWidth(35)
buttons = QtWidgets.QWidget()
button_area = QtWidgets.QHBoxLayout(buttons)
button_area.addWidget(hideup_button, 20)
button_area.addWidget(hidedown_button, 20)
button_area.addStretch(300)
button_area.addWidget(run_button, 200)
button_area.setContentsMargins(0, 0, 0, 0)
buttons.setFixedHeight(25)
# Connect signals
run_button.clicked.connect(self.runCode)
hideup_button.clicked.connect(self.hideUp)
hidedown_button.clicked.connect(self.hideDown)
# Create top area with the Editor and the button area element
top_widget = QtWidgets.QWidget()
top_layout = QtWidgets.QVBoxLayout(top_widget)
top_layout.setContentsMargins(0, 0, 0, 0)
top_layout.addWidget(self._editor.widget())
top_layout.addWidget(buttons)
self._top_widget = top_widget
# Add elements
layout = QtWidgets.QVBoxLayout(self)
layout.setContentsMargins(0, 0, 0, 0)
splitter = QtWidgets.QSplitter(QtCore.Qt.Orientation(0))
splitter.addWidget(top_widget)
splitter.addWidget(self._console.widget())
splitter.setSizes([200, 120])
splitter.setChildrenCollapsible(False)
layout.addWidget(splitter)
self._splitter = splitter
self._splitter_sizes = splitter.sizes()
# Size hints
self.setMinimumSize(QtCore.QSize(100, 200))
# Set theme
self.setTheme(self.theme())
评论列表
文章目录