QInputMethodEvent

Synopsis

Functions

Detailed Description

The PySide.QtGui.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:

PySide.QtGui.QInputMethodEvent models these three stages, and transfers the information needed to correctly render the intermediate result. A PySide.QtGui.QInputMethodEvent has two main parameters: PySide.QtGui.QInputMethodEvent.preeditString() and PySide.QtGui.QInputMethodEvent.commitString() . The PySide.QtGui.QInputMethodEvent.preeditString() parameter gives the currently active preedit string. The PySide.QtGui.QInputMethodEvent.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 PySide.QtGui.QInputMethodEvent.commitString() should replace parts of the of the text in the editor, PySide.QtGui.QInputMethodEvent.replacementLength() will contain the number of characters to be replaced. PySide.QtGui.QInputMethodEvent.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 QInputMethodEvent.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:

class PySide.QtGui.QInputMethodEvent
class PySide.QtGui.QInputMethodEvent(other)
class PySide.QtGui.QInputMethodEvent(preeditText, attributes)
Parameters:

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

Constructs a copy of other .

PySide.QtGui.QInputMethodEvent.AttributeType
Constant Description
QInputMethodEvent.TextFormat A PySide.QtGui.QTextCharFormat for the part of the preedit string specified by start and length. value contains a PySide.QtCore.QVariant of type PySide.QtGui.QTextFormat specifying rendering of this part of the preedit string. There should be at most one format for every part of the preedit string. If several are specified for any character in the string the behaviour is undefined. A conforming implementation has to at least honor the backgroundColor, textColor and fontUnderline properties of the format.
QInputMethodEvent.Cursor If set, a cursor should be shown inside the preedit string at position start. The length variable determines whether the cursor is visible or not. If the length is 0 the cursor is invisible. If value is a PySide.QtCore.QVariant of type PySide.QtGui.QColor this color will be used for rendering the cursor, otherwise the color of the surrounding text will be used. There should be at most one Cursor attribute per event. If several are specified the behaviour is undefined.
QInputMethodEvent.Language The variant contains a PySide.QtCore.QLocale object specifying the language of a certain part of the preedit string. There should be at most one language set for every part of the preedit string. If several are specified for any character in the string the behavior is undefined.
QInputMethodEvent.Ruby The ruby text for a part of the preedit string. There should be at most one ruby text set for every part of the preedit string. If several are specified for any character in the string the behaviour is undefined.
QInputMethodEvent.Selection If set, the edit cursor should be moved to the specified position in the editor text contents. In contrast with Cursor, this attribute does not work on the preedit text, but on the surrounding text. The cursor will be moved after the commit string has been committed, and the preedit string will be located at the new edit position. The start position specifies the new position and the length variable can be used to set a selection starting from that point. The value is unused.

See also

Attribute

PySide.QtGui.QInputMethodEvent.attributes()
Return type:

Returns the list of attributes passed to the PySide.QtGui.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).

PySide.QtGui.QInputMethodEvent.commitString()
Return type:unicode

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.

PySide.QtGui.QInputMethodEvent.preeditString()
Return type:unicode

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

PySide.QtGui.QInputMethodEvent.replacementLength()
Return type:PySide.QtCore.int

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

PySide.QtGui.QInputMethodEvent.replacementStart()
Return type:PySide.QtCore.int

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

PySide.QtGui.QInputMethodEvent.setCommitString(commitString[, replaceFrom=0[, replaceLength=0]])
Parameters:
  • commitString – unicode
  • replaceFromPySide.QtCore.int
  • replaceLengthPySide.QtCore.int

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.