Skip to content

Gtk.EntryBuffer

class — extends GObject.Object

Holds the text that is displayed in a single-line text entry widget.

A single GtkEntryBuffer object can be shared by multiple widgets which will then share the same text content, but not the cursor position, visibility attributes, icon etc.

GtkEntryBuffer may be derived from. Such a derived class might allow text to be stored in an alternate location, such as non-pageable memory, useful in the case of important passwords. Or a derived class could integrate with an application’s concept of undo/redo.

Constructors

new

@classmethod
def new(cls, initial_chars: str | None, n_initial_chars: int) -> EntryBuffer

Create a new GtkEntryBuffer object.

Optionally, specify initial text to set in the buffer.

Parameters:

  • initial_chars — initial buffer text
  • n_initial_chars — number of characters in initial_chars, or -1

Methods

delete_text

def delete_text(self, position: int, n_chars: int) -> int

Deletes a sequence of characters from the buffer.

n_chars characters are deleted starting at position. If n_chars is negative, then all characters until the end of the text are deleted.

If position or n_chars are out of bounds, then they are coerced to sane values.

Note that the positions are specified in characters, not bytes.

Parameters:

  • position — position at which to delete text
  • n_chars — number of characters to delete

emit_deleted_text

def emit_deleted_text(self, position: int, n_chars: int) -> None

Used when subclassing GtkEntryBuffer.

Parameters:

  • position — position at which text was deleted
  • n_chars — number of characters deleted

emit_inserted_text

def emit_inserted_text(self, position: int, chars: str, n_chars: int) -> None

Used when subclassing GtkEntryBuffer.

Parameters:

  • position — position at which text was inserted
  • chars — text that was inserted
  • n_chars — number of characters inserted

get_bytes

def get_bytes(self) -> int

Retrieves the length in bytes of the buffer.

See EntryBuffer.get_length.

get_length

def get_length(self) -> int

Retrieves the length in characters of the buffer.

get_max_length

def get_max_length(self) -> int

Retrieves the maximum allowed length of the text in buffer.

get_text

def get_text(self) -> str

Retrieves the contents of the buffer.

The memory pointer returned by this call will not change unless this object emits a signal, or is finalized.

insert_text

def insert_text(self, position: int, chars: str, n_chars: int) -> int

Inserts n_chars characters of chars into the contents of the buffer, at position position.

If n_chars is negative, then characters from chars will be inserted until a null-terminator is found. If position or n_chars are out of bounds, or the maximum buffer text length is exceeded, then they are coerced to sane values.

Note that the position and length are in characters, not in bytes.

Parameters:

  • position — the position at which to insert text.
  • chars — the text to insert into the buffer.
  • n_chars — the length of the text in characters, or -1

set_max_length

def set_max_length(self, max_length: int) -> None

Sets the maximum allowed length of the contents of the buffer.

If the current contents are longer than the given length, then they will be truncated to fit.

Parameters:

  • max_length — the maximum length of the entry buffer, or 0 for no maximum. (other than the maximum length of entries.) The value passed in will be clamped to the range 0-65536.

set_text

def set_text(self, chars: str, n_chars: int) -> None

Sets the text in the buffer.

This is roughly equivalent to calling EntryBuffer.delete_text and EntryBuffer.insert_text.

Note that n_chars is in characters, not in bytes.

Parameters:

  • chars — the new text
  • n_chars — the number of characters in text, or -1

Virtual methods

do_delete_text

def do_delete_text(self, position: int, n_chars: int) -> int

Deletes a sequence of characters from the buffer.

n_chars characters are deleted starting at position. If n_chars is negative, then all characters until the end of the text are deleted.

If position or n_chars are out of bounds, then they are coerced to sane values.

Note that the positions are specified in characters, not bytes.

Parameters:

  • position — position at which to delete text
  • n_chars — number of characters to delete

do_deleted_text

def do_deleted_text(self, position: int, n_chars: int) -> None

do_get_length

def do_get_length(self) -> int

Retrieves the length in characters of the buffer.

do_get_text

def do_get_text(self, n_bytes: int) -> str

do_insert_text

def do_insert_text(self, position: int, chars: str, n_chars: int) -> int

Inserts n_chars characters of chars into the contents of the buffer, at position position.

If n_chars is negative, then characters from chars will be inserted until a null-terminator is found. If position or n_chars are out of bounds, or the maximum buffer text length is exceeded, then they are coerced to sane values.

Note that the position and length are in characters, not in bytes.

Parameters:

  • position — the position at which to insert text.
  • chars — the text to insert into the buffer.
  • n_chars — the length of the text in characters, or -1

do_inserted_text

def do_inserted_text(self, position: int, chars: str, n_chars: int) -> None

Properties

length

length: int  # read-only

The length (in characters) of the text in buffer.

max_length

max_length: int  # read/write

The maximum length (in characters) of the text in the buffer.

text

text: str  # read/write

The contents of the buffer.

Signals

deleted-text

def on_deleted_text(self, position: int, n_chars: int) -> None: ...

The text is altered in the default handler for this signal.

If you want access to the text after the text has been modified, use GObject.ConnectFlags.AFTER.

inserted-text

def on_inserted_text(self, position: int, chars: str, n_chars: int) -> None: ...

This signal is emitted after text is inserted into the buffer.