#[repr(C)]
pub struct QInputMethodEvent { /* private fields */ }
Expand description

The QInputMethodEvent class provides parameters for input method events.

C++ class: QInputMethodEvent.

C++ documentation:

The QInputMethodEvent class provides parameters for input method events.

Input method events are sent to widgets when an input method is used to enter text into a widget. Input methods are widely used to enter text for languages with non-Latin alphabets.

Note that when creating custom text editing widgets, the Qt::WA_InputMethodEnabled window attribute must be set explicitly (using the QWidget::setAttribute() function) in order to receive input method events.

The events are of interest to authors of keyboard entry widgets who want to be able to correctly handle languages with complex character input. Text input in such languages is usually a three step process:

  1. Starting to Compose

    When the user presses the first key on a keyboard, an input context is created. This input context will contain a string of the typed characters.

  2. Composing

    With every new key pressed, the input method will try to create a matching string for the text typed so far called preedit string. While the input context is active, the user can only move the cursor inside the string belonging to this input context.

  3. Completing

    At some point, the user will activate a user interface component (perhaps using a particular key) where they can choose from a number of strings matching the text they have typed so far. The user can either confirm their choice cancel the input; in either case the input context will be closed.

QInputMethodEvent models these three stages, and transfers the information needed to correctly render the intermediate result. A QInputMethodEvent has two main parameters: preeditString() and commitString(). The preeditString() parameter gives the currently active preedit string. The commitString() parameter gives a text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

If the commitString() should replace parts of the of the text in the editor, replacementLength() will contain the number of characters to be replaced. replacementStart() contains the position at which characters are to be replaced relative from the start of the preedit string.

A number of attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only). The AttributeType enum describes the different attributes that can be set.

A class implementing QWidget::inputMethodEvent() or QGraphicsItem::inputMethodEvent() should at least understand and honor the TextFormat and Cursor attributes.

Since input methods need to be able to query certain properties from the widget or graphics item, subclasses must also implement QWidget::inputMethodQuery() and QGraphicsItem::inputMethodQuery(), respectively.

When receiving an input method event, the text widget has to performs the following steps:

  1. If the widget has selected text, the selected text should get removed.
  2. Remove the text starting at replacementStart() with length replacementLength() and replace it by the commitString(). If replacementLength() is 0, replacementStart() gives the insertion position for the commitString().

    When doing replacement the area of the preedit string is ignored, thus a replacement starting at -1 with a length of 2 will remove the last character before the preedit string and the first character afterwards, and insert the commit string directly before the preedit string.

    If the widget implements undo/redo, this operation gets added to the undo stack.

  3. If there is no current preedit string, insert the preeditString() at the current cursor position; otherwise replace the previous preeditString with the one received from this event.

    If the widget implements undo/redo, the preeditString() should not influence the undo/redo stack in any way.

    The widget should examine the list of attributes to apply to the preedit string. It has to understand at least the TextFormat and Cursor attributes and render them as specified.

Implementations§

source§

impl QInputMethodEvent

source

pub unsafe fn attributes(&self) -> Ref<QListOfAttribute>

Returns the list of attributes passed to the QInputMethodEvent constructor. The attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only).

Calls C++ function: const QList<QInputMethodEvent::Attribute>& QInputMethodEvent::attributes() const.

C++ documentation:

Returns the list of attributes passed to the QInputMethodEvent constructor. The attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only).

See also preeditString() and Attribute.

source

pub unsafe fn commit_string(&self) -> Ref<QString>

Returns the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

Calls C++ function: const QString& QInputMethodEvent::commitString() const.

C++ documentation:

Returns the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

See also setCommitString(), preeditString(), replacementStart(), and replacementLength().

source

pub unsafe fn copy_from( &self, other: impl CastInto<Ref<QInputMethodEvent>> ) -> Ref<QInputMethodEvent>

The QInputMethodEvent class provides parameters for input method events.

Calls C++ function: QInputMethodEvent& QInputMethodEvent::operator=(const QInputMethodEvent& other).

C++ documentation:

The QInputMethodEvent class provides parameters for input method events.

Input method events are sent to widgets when an input method is used to enter text into a widget. Input methods are widely used to enter text for languages with non-Latin alphabets.

Note that when creating custom text editing widgets, the Qt::WA_InputMethodEnabled window attribute must be set explicitly (using the QWidget::setAttribute() function) in order to receive input method events.

The events are of interest to authors of keyboard entry widgets who want to be able to correctly handle languages with complex character input. Text input in such languages is usually a three step process:

  1. Starting to Compose

    When the user presses the first key on a keyboard, an input context is created. This input context will contain a string of the typed characters.

  2. Composing

    With every new key pressed, the input method will try to create a matching string for the text typed so far called preedit string. While the input context is active, the user can only move the cursor inside the string belonging to this input context.

  3. Completing

    At some point, the user will activate a user interface component (perhaps using a particular key) where they can choose from a number of strings matching the text they have typed so far. The user can either confirm their choice cancel the input; in either case the input context will be closed.

QInputMethodEvent models these three stages, and transfers the information needed to correctly render the intermediate result. A QInputMethodEvent has two main parameters: preeditString() and commitString(). The preeditString() parameter gives the currently active preedit string. The commitString() parameter gives a text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

If the commitString() should replace parts of the of the text in the editor, replacementLength() will contain the number of characters to be replaced. replacementStart() contains the position at which characters are to be replaced relative from the start of the preedit string.

A number of attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only). The AttributeType enum describes the different attributes that can be set.

A class implementing QWidget::inputMethodEvent() or QGraphicsItem::inputMethodEvent() should at least understand and honor the TextFormat and Cursor attributes.

Since input methods need to be able to query certain properties from the widget or graphics item, subclasses must also implement QWidget::inputMethodQuery() and QGraphicsItem::inputMethodQuery(), respectively.

When receiving an input method event, the text widget has to performs the following steps:

  1. If the widget has selected text, the selected text should get removed.
  2. Remove the text starting at replacementStart() with length replacementLength() and replace it by the commitString(). If replacementLength() is 0, replacementStart() gives the insertion position for the commitString().

    When doing replacement the area of the preedit string is ignored, thus a replacement starting at -1 with a length of 2 will remove the last character before the preedit string and the first character afterwards, and insert the commit string directly before the preedit string.

    If the widget implements undo/redo, this operation gets added to the undo stack.

  3. If there is no current preedit string, insert the preeditString() at the current cursor position; otherwise replace the previous preeditString with the one received from this event.

    If the widget implements undo/redo, the preeditString() should not influence the undo/redo stack in any way.

    The widget should examine the list of attributes to apply to the preedit string. It has to understand at least the TextFormat and Cursor attributes and render them as specified.

source

pub unsafe fn new_0a() -> CppBox<QInputMethodEvent>

Constructs an event of type QEvent::InputMethod. The attributes(), preeditString(), commitString(), replacementStart(), and replacementLength() are initialized to default values.

Calls C++ function: [constructor] void QInputMethodEvent::QInputMethodEvent().

C++ documentation:

Constructs an event of type QEvent::InputMethod. The attributes(), preeditString(), commitString(), replacementStart(), and replacementLength() are initialized to default values.

See also setCommitString().

source

pub unsafe fn new_2a( preedit_text: impl CastInto<Ref<QString>>, attributes: impl CastInto<Ref<QListOfAttribute>> ) -> CppBox<QInputMethodEvent>

Constructs an event of type QEvent::InputMethod. The preedit text is set to preeditText, the attributes to attributes.

Calls C++ function: [constructor] void QInputMethodEvent::QInputMethodEvent(const QString& preeditText, const QList<QInputMethodEvent::Attribute>& attributes).

C++ documentation:

Constructs an event of type QEvent::InputMethod. The preedit text is set to preeditText, the attributes to attributes.

The commitString(), replacementStart(), and replacementLength() values can be set using setCommitString().

See also preeditString() and attributes().

source

pub unsafe fn new_copy( other: impl CastInto<Ref<QInputMethodEvent>> ) -> CppBox<QInputMethodEvent>

Constructs a copy of other.

Calls C++ function: [constructor] void QInputMethodEvent::QInputMethodEvent(const QInputMethodEvent& other).

C++ documentation:

Constructs a copy of other.

source

pub unsafe fn preedit_string(&self) -> Ref<QString>

Returns the preedit text, i.e. the text before the user started editing it.

Calls C++ function: const QString& QInputMethodEvent::preeditString() const.

C++ documentation:

Returns the preedit text, i.e. the text before the user started editing it.

See also commitString() and attributes().

source

pub unsafe fn replacement_length(&self) -> c_int

Returns the number of characters to be replaced in the preedit string.

Calls C++ function: int QInputMethodEvent::replacementLength() const.

C++ documentation:

Returns the number of characters to be replaced in the preedit string.

See also replacementStart() and setCommitString().

source

pub unsafe fn replacement_start(&self) -> c_int

Returns the position at which characters are to be replaced relative from the start of the preedit string.

Calls C++ function: int QInputMethodEvent::replacementStart() const.

C++ documentation:

Returns the position at which characters are to be replaced relative from the start of the preedit string.

See also replacementLength() and setCommitString().

source

pub unsafe fn set_commit_string_3a( &self, commit_string: impl CastInto<Ref<QString>>, replace_from: c_int, replace_length: c_int )

Sets the commit string to commitString.

Calls C++ function: void QInputMethodEvent::setCommitString(const QString& commitString, int replaceFrom = …, int replaceLength = …).

C++ documentation:

Sets the commit string to commitString.

The commit string is the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

If the commit string should replace parts of the of the text in the editor, replaceLength specifies the number of characters to be replaced. replaceFrom specifies the position at which characters are to be replaced relative from the start of the preedit string.

See also commitString(), replacementStart(), and replacementLength().

source

pub unsafe fn set_commit_string_2a( &self, commit_string: impl CastInto<Ref<QString>>, replace_from: c_int )

Sets the commit string to commitString.

Calls C++ function: void QInputMethodEvent::setCommitString(const QString& commitString, int replaceFrom = …).

C++ documentation:

Sets the commit string to commitString.

The commit string is the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

If the commit string should replace parts of the of the text in the editor, replaceLength specifies the number of characters to be replaced. replaceFrom specifies the position at which characters are to be replaced relative from the start of the preedit string.

See also commitString(), replacementStart(), and replacementLength().

source

pub unsafe fn set_commit_string_1a( &self, commit_string: impl CastInto<Ref<QString>> )

Sets the commit string to commitString.

Calls C++ function: void QInputMethodEvent::setCommitString(const QString& commitString).

C++ documentation:

Sets the commit string to commitString.

The commit string is the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

If the commit string should replace parts of the of the text in the editor, replaceLength specifies the number of characters to be replaced. replaceFrom specifies the position at which characters are to be replaced relative from the start of the preedit string.

See also commitString(), replacementStart(), and replacementLength().

Methods from Deref<Target = QEvent>§

source

pub unsafe fn accept(&self)

Sets the accept flag of the event object, the equivalent of calling setAccepted(true).

Calls C++ function: void QEvent::accept().

C++ documentation:

Sets the accept flag of the event object, the equivalent of calling setAccepted(true).

Setting the accept parameter indicates that the event receiver wants the event. Unwanted events might be propagated to the parent widget.

See also ignore().

source

pub unsafe fn copy_from(&self, other: impl CastInto<Ref<QEvent>>) -> Ref<QEvent>

Calls C++ function: QEvent& QEvent::operator=(const QEvent& other).

source

pub unsafe fn ignore(&self)

Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).

Calls C++ function: void QEvent::ignore().

C++ documentation:

Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).

Clearing the accept parameter indicates that the event receiver does not want the event. Unwanted events might be propagated to the parent widget.

See also accept().

source

pub unsafe fn is_accepted(&self) -> bool

the accept flag of the event object

Calls C++ function: bool QEvent::isAccepted() const.

C++ documentation:

the accept flag of the event object

Setting the accept parameter indicates that the event receiver wants the event. Unwanted events might be propagated to the parent widget. By default, isAccepted() is set to true, but don't rely on this as subclasses may choose to clear it in their constructor.

For convenience, the accept flag can also be set with accept(), and cleared with ignore().

Access functions:

bool isAccepted() const
void setAccepted(bool accepted)
source

pub unsafe fn set_accepted(&self, accepted: bool)

the accept flag of the event object

Calls C++ function: void QEvent::setAccepted(bool accepted).

C++ documentation:

the accept flag of the event object

Setting the accept parameter indicates that the event receiver wants the event. Unwanted events might be propagated to the parent widget. By default, isAccepted() is set to true, but don't rely on this as subclasses may choose to clear it in their constructor.

For convenience, the accept flag can also be set with accept(), and cleared with ignore().

Access functions:

bool isAccepted() const
void setAccepted(bool accepted)
source

pub unsafe fn spontaneous(&self) -> bool

Returns true if the event originated outside the application (a system event); otherwise returns false.

Calls C++ function: bool QEvent::spontaneous() const.

C++ documentation:

Returns true if the event originated outside the application (a system event); otherwise returns false.

The return value of this function is not defined for paint events.

source

pub unsafe fn type_(&self) -> Type

Returns the event type.

Calls C++ function: QEvent::Type QEvent::type() const.

C++ documentation:

Returns the event type.

Trait Implementations§

source§

impl CppDeletable for QInputMethodEvent

source§

unsafe fn delete(&self)

Destroys the instance of QInputMethodEvent.

Calls C++ function: virtual [destructor] void QInputMethodEvent::~QInputMethodEvent().

C++ documentation:

Destroys the instance of QInputMethodEvent.

source§

impl Deref for QInputMethodEvent

source§

fn deref(&self) -> &QEvent

Calls C++ function: QEvent* static_cast<QEvent*>(QInputMethodEvent* ptr).

§

type Target = QEvent

The resulting type after dereferencing.
source§

impl DynamicCast<QInputMethodEvent> for QEvent

source§

unsafe fn dynamic_cast(ptr: Ptr<QEvent>) -> Ptr<QInputMethodEvent>

Calls C++ function: QInputMethodEvent* dynamic_cast<QInputMethodEvent*>(QEvent* ptr).

source§

impl StaticDowncast<QInputMethodEvent> for QEvent

source§

unsafe fn static_downcast(ptr: Ptr<QEvent>) -> Ptr<QInputMethodEvent>

Calls C++ function: QInputMethodEvent* static_cast<QInputMethodEvent*>(QEvent* ptr).

source§

impl StaticUpcast<QEvent> for QInputMethodEvent

source§

unsafe fn static_upcast(ptr: Ptr<QInputMethodEvent>) -> Ptr<QEvent>

Calls C++ function: QEvent* static_cast<QEvent*>(QInputMethodEvent* ptr).

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T, U> CastInto<U> for T
where U: CastFrom<T>,

source§

unsafe fn cast_into(self) -> U

Performs the conversion. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> StaticUpcast<T> for T

source§

unsafe fn static_upcast(ptr: Ptr<T>) -> Ptr<T>

Convert type of a const pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.