Class: QgsCodeEditor

class qgis.gui.QgsCodeEditor

Bases: PyQt5.Qsci.QsciScintilla

A text editor based on QScintilla2.

Note

may not be available in Python bindings, depending on platform support

QgsCodeEditor(parent: QWidget = None, title: str = ‘’, folding: bool = False, margin: bool = False, flags: Union[QgsCodeEditor.Flags, QgsCodeEditor.Flag] = QgsCodeEditor.Flags(), mode: QgsCodeEditor.Mode = QgsCodeEditor.Mode.ScriptEditor) Construct a new code editor.

Parameters:
class Flag(value)

Bases: enum.IntEnum

Flags controlling behavior of code editor

New in version 3.28.

  • CodeFolding: Indicates that code folding should be enabled for the editor

  • ImmediatelyUpdateHistory: Indicates that the history file should be immediately updated whenever a command is executed, instead of the default behavior of only writing the history on widget close. Since QGIS 3.32.

CodeFolding = 1
ImmediatelyUpdateHistory = 2
baseClass

alias of QgsCodeEditor

class Flags
class Flags(Union[QgsCodeEditor.Flags, QgsCodeEditor.Flag])
class Flags(QgsCodeEditor.Flags)

Bases: sip.wrapper

baseClass

alias of QgsCodeEditor

class MarginRole(value)

Bases: enum.IntEnum

Margin roles.

This enum contains the roles which the different numbered margins are used for.

New in version 3.16.

  • LineNumbers: Line numbers

  • ErrorIndicators: Error indicators

  • FoldingControls: Folding controls

baseClass

alias of QgsCodeEditor

class Mode(value)

Bases: enum.IntEnum

Code editor modes.

New in version 3.30.

  • ScriptEditor: Standard mode, allows for display and edit of entire scripts

  • OutputDisplay: Read only mode for display of command outputs

  • CommandInput: Command input mode

CommandInput = 2
OutputDisplay = 1
ScriptEditor = 0
baseClass

alias of QgsCodeEditor

actionEvent(self, QActionEvent)
addWarning(self, lineNumber: int, warning: str)

Adds a warning message and indicator to the specified a lineNumber.

See also

clearWarnings()

New in version 3.16.

Parameters:
  • lineNumber (int) –

  • warning (str) –

canInsertFromMimeData(self, QMimeData) bool
changeEvent(self, QEvent)
checkSyntax(self) bool

Applies syntax checking to the editor.

This is only supported for editors which return the Qgis.ScriptLanguageCapability.CheckSyntax capability from languageCapabilities().

New in version 3.32.

Return type:

bool

childEvent(self, QChildEvent)
clearPersistentHistory(self)

Clears the entire persistent history of commands run in the editor.

Note

Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.

New in version 3.30.

clearSessionHistory(self)

Clears the history of commands run in the current session.

Note

Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.

New in version 3.30.

clearWarnings(self)

Clears all warning messages from the editor.

See also

addWarning()

New in version 3.16.

closeEvent(self, QCloseEvent)
color(role: QgsCodeEditorColorScheme.ColorRole) QColor

Returns the color to use in the editor for the specified role.

This color will be the default theme color for the role, unless the user has manually selected a custom color scheme for the editor.

See also

setColor()

New in version 3.16.

Parameters:

role (QgsCodeEditorColorScheme.ColorRole) –

Return type:

QColor

connectNotify(self, QMetaMethod)
contextMenuEvent(self, event: QContextMenuEvent)
Parameters:

event (QContextMenuEvent) –

create(self, window: PyQt5.sip.voidptr = 0, initializeWindow: bool = True, destroyOldWindow: bool = True)
customEvent(self, QEvent)
defaultColor(role: QgsCodeEditorColorScheme.ColorRole, theme: str = '') QColor

Returns the default color for the specified role.

The optional theme argument can be used to specify a color theme. A blank theme indicates the default color scheme.

Available themes are stored in QgsCodeEditorColorSchemeRegistry, and can be retrieved via QgsGui.codeEditorColorSchemeRegistry().

New in version 3.16.

Parameters:
Return type:

QColor

destroy(self, destroyWindow: bool = True, destroySubWindows: bool = True)
disconnectNotify(self, QMetaMethod)
dragEnterEvent(self, QDragEnterEvent)
dragLeaveEvent(self, QDragLeaveEvent)
dragMoveEvent(self, QDragMoveEvent)
drawFrame(self, QPainter)
dropEvent(self, QDropEvent)
enterEvent(self, QEvent)
event(self, QEvent) bool
eventFilter(self, watched: QObject, event: QEvent) bool
Parameters:
  • watched (QObject) –

  • event (QEvent) –

Return type:

bool

focusInEvent(self, QFocusEvent)
focusNextChild(self) bool
focusNextPrevChild(self, bool) bool
focusOutEvent(self, event: QFocusEvent)
Parameters:

event (QFocusEvent) –

focusPreviousChild(self) bool
foldingVisible(self) bool

Returns True if the folding controls are visible in the editor.

Return type:

bool

fromMimeData(self, QMimeData) Tuple[QByteArray, bool]
getMonospaceFont() QFont

Returns the monospaced font to use for code editors.

New in version 3.16.

Return type:

QFont

hideEvent(self, QHideEvent)
history(self) List[str]

Returns the list of commands previously executed in the editor.

Note

Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.

New in version 3.30.

Return type:

List[str]

initPainter(self, QPainter)
initStyleOption(self, QStyleOptionFrame)
initializeLexer(self)

Called when the dialect specific code lexer needs to be initialized (or reinitialized).

The default implementation does nothing.

New in version 3.16.

inputMethodEvent(self, QInputMethodEvent)
inputMethodQuery(self, Qt.InputMethodQuery) Any
insertText(self, text: str)

Insert text at cursor position, or replace any selected text if user has made a selection.

Parameters:

text (str) – The text to be inserted

interpreter(self) QgsCodeInterpreter

Returns the attached code interpreter, or None if not set.

See also

setInterpreter()

New in version 3.30.

Return type:

QgsCodeInterpreter

isCursorOnLastLine(self) bool

Returns True if the cursor is on the last line of the document.

New in version 3.28.

Return type:

bool

isFixedPitch(font: QFont) bool

Returns True if a font is a fixed pitch font.

Parameters:

font (QFont) –

Return type:

bool

isSignalConnected(self, QMetaMethod) bool
keyPressEvent(self, event: QKeyEvent)
Parameters:

event (QKeyEvent) –

keyReleaseEvent(self, QKeyEvent)
language(self) Qgis.ScriptLanguage

Returns the associated scripting language.

New in version 3.30.

Return type:

Qgis.ScriptLanguage

languageCapabilities(self) Qgis.ScriptLanguageCapabilities

Returns the associated scripting language capabilities.

New in version 3.32.

Return type:

Qgis.ScriptLanguageCapabilities

languageToString(language: Qgis.ScriptLanguage) str

Returns a user-friendly, translated name of the specified script language.

New in version 3.30.

Parameters:

language (Qgis.ScriptLanguage) –

Return type:

str

leaveEvent(self, QEvent)
lexerColor(self, role: QgsCodeEditorColorScheme.ColorRole) QColor

Returns the color to use in the lexer for the specified role.

New in version 3.16.

Parameters:

role (QgsCodeEditorColorScheme.ColorRole) –

Return type:

QColor

lexerFont(self) QFont

Returns the font to use in the lexer.

New in version 3.16.

Return type:

QFont

lineNumbersVisible(self) bool

Returns whether line numbers are visible in the editor.

New in version 3.16.

Return type:

bool

linearPosition(self) int

Convenience function to return the cursor position as a linear index

New in version 3.36.

Return type:

int

marginVisible(self) bool

Returns whether margins are in a visible state

Deprecated since version Use: base class methods for individual margins instead, or lineNumbersVisible()

Return type:

bool

metric(self, QPaintDevice.PaintDeviceMetric) int
mode(self) QgsCodeEditor.Mode

Returns the code editor mode.

New in version 3.30.

Return type:

QgsCodeEditor.Mode

mouseDoubleClickEvent(self, QMouseEvent)
mouseMoveEvent(self, QMouseEvent)
mousePressEvent(self, QMouseEvent)
mouseReleaseEvent(self, QMouseEvent)
moveCursorToEnd(self)

Moves the cursor to the end of the document and scrolls to ensure it is visible.

New in version 3.28.

moveCursorToStart(self)

Moves the cursor to the start of the document and scrolls to ensure it is visible.

New in version 3.28.

moveEvent(self, QMoveEvent)
nativeEvent(self, Union[QByteArray, bytes, bytearray], PyQt5.sip.voidptr) Tuple[bool, int]
paintEvent(self, QPaintEvent)
persistentHistoryCleared

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters:
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type:

PYQT_SIGNAL

populateContextMenu(self, menu: QMenu)

Called when the context menu for the widget is about to be shown, after it has been fully populated with the standard actions created by the base class.

This method provides an opportunity for subclasses to add additional non-standard actions to the context menu.

New in version 3.30.

Parameters:

menu (QMenu) –

receivers(self, PYQT_SIGNAL) int
reformatCode(self)

Applies code reformatting to the editor.

This is only supported for editors which return the Qgis.ScriptLanguageCapability.Reformat capability from languageCapabilities().

New in version 3.32.

reformatCodeString(self, string: str) str

Applies code reformatting to a string and returns the result.

This is only supported for editors which return the Qgis.ScriptLanguageCapability.Reformat capability from languageCapabilities().

New in version 3.32.

Parameters:

string (str) –

Return type:

str

removeHistoryCommand(self, index: int)

Removes the command at the specified index from the history of the code editor.

New in version 3.30.

Parameters:

index (int) –

resizeEvent(self, QResizeEvent)
runCommand(self, command: str, skipHistory: bool = False)

Runs a command in the editor.

An interpreter() must be set.

Since QGIS 3.32, if skipHistory is True then the command will not be automatically added to the widget’s history.

New in version 3.30.

Parameters:
  • command (str) –

  • skipHistory (bool = False) –

runPostLexerConfigurationTasks(self)

Performs tasks which must be run after a lexer has been set for the widget.

New in version 3.16.

scrollContentsBy(self, int, int)
selectionEnd(self) int

Convenience function to return the end of the selection as a linear index Contrary to the getSelection method, this method returns the cursor position if no selection is made.

New in version 3.36.

Return type:

int

selectionStart(self) int

Convenience function to return the start of the selection as a linear index Contrary to the getSelection method, this method returns the cursor position if no selection is made.

New in version 3.36.

Return type:

int

sender(self) QObject
senderSignalIndex(self) int
sessionHistoryCleared

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters:
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type:

PYQT_SIGNAL

setColor(role: QgsCodeEditorColorScheme.ColorRole, color: QColor | Qt.GlobalColor | QGradient)

Sets the color to use in the editor for the specified role.

This color will be stored as the new default color for the role, to be used for all code editors.

Set color to an invalid QColor in order to clear the stored color value and reset it to the default color.

See also

color()

New in version 3.16.

Parameters:
setFoldingVisible(self, folding: bool)

Set whether the folding controls are visible in the editor.

See also

foldingVisible()

Parameters:

folding (bool) –

setHistoryFilePath(self, path: str)

Sets the file path to use for recording and retrieving previously executed commands.

Note

Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.

New in version 3.30.

Parameters:

path (str) –

setInterpreter(self, newInterpreter: QgsCodeInterpreter)

Sets an attached code interpreter for executing commands when the editor is in the QgsCodeEditor.Mode.CommandInput mode.

See also

interpreter()

New in version 3.30.

Parameters:

newInterpreter (QgsCodeInterpreter) –

setLineNumbersVisible(self, visible: bool)

Sets whether line numbers should be visible in the editor.

Defaults to False.

New in version 3.16.

Parameters:

visible (bool) –

setLinearPosition(self, position: int)

Convenience function to set the cursor position as a linear index

New in version 3.36.

Parameters:

position (int) –

setLinearSelection(self, start: int, end: int)

Convenience function to set the selection using linear indexes

New in version 3.36.

Parameters:
  • start (int) –

  • end (int) –

setMarginVisible(self, margin: bool)

Set margin visible state

Parameters:

margin (bool) – Set margin in the editor

Deprecated since version Use: base class methods for individual margins instead, or setLineNumbersVisible()

setTitle(self, title: str)

Set the widget title

Parameters:

title (str) – widget title

setViewportMargins(self, int, int, int, int)
setViewportMargins(self, QMargins) None
sharedPainter(self) QPainter
showEvent(self, QShowEvent)
showHistory(self)

Shows the command history dialog.

Note

Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.

New in version 3.30.

showMessage(self, title: str, message: str, level: Qgis.MessageLevel)

Shows a user facing message (eg a warning message).

The default implementation uses QMessageBox.

New in version 3.32.

Parameters:
showNextCommand(self)

Shows the next command from the session in the editor.

Note

Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.

New in version 3.30.

showPreviousCommand(self)

Shows the previous command from the session in the editor.

Note

Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.

New in version 3.30.

tabletEvent(self, QTabletEvent)
timerEvent(self, QTimerEvent)
toMimeData(self, Union[QByteArray, bytes, bytearray], bool) QMimeData
toggleComment(self)

Toggle comment for the selected text.

This is only supported for editors which return the Qgis.ScriptLanguageCapability.ToggleComment capability from languageCapabilities().

New in version 3.32.

updateMicroFocus(self)
updatePrompt(self)

Triggers an update of the interactive prompt part of the editor.

Note

Applies to code editors in the QgsCodeEditor.Mode.CommandInput mode only.

New in version 3.30.

updateSoftHistory(self)

Updates the soft history by storing the current editor text in the history.

New in version 3.30.

viewportEvent(self, QEvent) bool
viewportMargins(self) QMargins
viewportSizeHint(self) QSize
wheelEvent(self, QWheelEvent)
writeHistoryFile(self) bool

Stores the commands executed in the editor to the persistent history file.

New in version 3.30.

Return type:

bool