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

New in version 2.6.

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:
  • parent – The parent QWidget

  • title – The title to show in the code editor dialog

  • foldingFalse: Enable folding for code editor (deprecated, use flags instead)

  • marginFalse: Enable margin for code editor (deprecated)

  • flags – flags controlling behavior of code editor (since QGIS 3.28)

  • mode – code editor mode (since QGIS 3.30)

New in version 2.6:

Enums

Flag

Bases: enum.IntEnum

MarginRole

Bases: enum.IntEnum

Mode

Bases: enum.IntEnum

Methods

actionEvent

addWarning

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

canInsertFromMimeData

changeEvent

childEvent

clearPersistentHistory

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

clearSessionHistory

Clears the history of commands run in the current session.

clearWarnings

Clears all warning messages from the editor.

closeEvent

color

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

connectNotify

contextMenuEvent

param event:

create

customEvent

defaultColor

Returns the default color for the specified role.

destroy

disconnectNotify

dragEnterEvent

dragLeaveEvent

dragMoveEvent

drawFrame

dropEvent

enterEvent

event

eventFilter

param watched:

focusInEvent

focusNextChild

focusNextPrevChild

focusOutEvent

param event:

focusPreviousChild

foldingVisible

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

fromMimeData

getMonospaceFont

Returns the monospaced font to use for code editors.

hideEvent

history

Returns the list of commands previously executed in the editor.

initPainter

initStyleOption

initializeLexer

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

inputMethodEvent

inputMethodQuery

insertText

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

interpreter

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

isCursorOnLastLine

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

isFixedPitch

Returns True if a font is a fixed pitch font.

isSignalConnected

keyPressEvent

param event:

keyReleaseEvent

language

Returns the associated scripting language.

languageToString

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

leaveEvent

lexerColor

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

lexerFont

Returns the font to use in the lexer.

lineNumbersVisible

Returns whether line numbers are visible in the editor.

marginVisible

Returns whether margins are in a visible state

metric

mode

Returns the code editor mode.

mouseDoubleClickEvent

mouseMoveEvent

mousePressEvent

mouseReleaseEvent

moveCursorToEnd

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

moveCursorToStart

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

moveEvent

nativeEvent

paintEvent

populateContextMenu

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.

receivers

removeHistoryCommand

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

resizeEvent

runCommand

Runs a command in the editor.

runPostLexerConfigurationTasks

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

scrollContentsBy

sender

senderSignalIndex

setColor

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

setFoldingVisible

Set whether the folding controls are visible in the editor.

setHistoryFilePath

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

setInterpreter

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

setLineNumbersVisible

Sets whether line numbers should be visible in the editor.

setMarginVisible

Set margin visible state

setTitle

Set the widget title

setViewportMargins

sharedPainter

showEvent

showHistory

Shows the command history dialog.

showNextCommand

Shows the next command from the session in the editor.

showPreviousCommand

Shows the previous command from the session in the editor.

tabletEvent

timerEvent

toMimeData

updateMicroFocus

updatePrompt

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

updateSoftHistory

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

viewportEvent

viewportMargins

viewportSizeHint

wheelEvent

writeHistoryFile

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

Signals

persistentHistoryCleared

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

sessionHistoryCleared

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

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

CodeFolding = 1
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)
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

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

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
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)

Runs a command in the editor.

An interpreter() must be set.

New in version 3.30.

Parameters:

command (str) –

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)
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) –

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.

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
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