QIMEvent - Parameters for input method events
QIMEvent ( Type type, const QString & text, int cursorPosition )
const QString & text () const
int cursorPos () const
bool isAccepted () const
void accept ()
void ignore ()
int selectionLength () const
The QIMEvent 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 in Asian and other complex languages.
The events are of interest to widgets that accept keyboard input and want to be able to
correctly handle complex languages. Text input in such languages is usually a three step
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 with the typed characters.
With every new key pressed, the input method will try to create a matching string
for the text typed so far. While the input context is active, the user can only
move the cursor inside the string belonging to this input context.
At some point, e.g. when the user presses the Spacebar, they get to this stage,
where they can choose from a number of strings that match the text they have typed
so far. The user can press Enter to confirm their choice or Escape to cancel the
input; in either case the input context will be closed.
Note that the particular key presses used for a given input context may differ from those
we've mentioned here, i.e. they may not be Spacebar, Enter and Escape.
These three stages are represented by three different types of events. The IMStartEvent,
IMComposeEvent and IMEndEvent. When a new input context is created, an IMStartEvent will
be sent to the widget and delivered to the QWidget::imStartEvent() function. The widget
can then update internal data structures to reflect this.
After this, an IMComposeEvent will be sent to the widget for every key the user presses.
It will contain the current composition string the widget has to show and the current
cursor position within the composition string. This string is temporary and can change
with every key the user types, so the widget will need to store the state before the
composition started (the state it had when it received the IMStartEvent). IMComposeEvents
will be delivered to the QWidget::imComposeEvent() function.
Usually, widgets try to mark the part of the text that is part of the current composition
in a way that is visible to the user. A commonly used visual cue is to use a dotted
After the user has selected the final string, an IMEndEvent will be sent to the widget.
The event contains the final string the user selected, and could be empty if they
cancelled the composition. This string should be accepted as the final text the user
entered, and the intermediate composition string should be cleared. These events are
delivered to QWidget::imEndEvent().
If the user clicks another widget, taking the focus out of the widget where the
composition is taking place the IMEndEvent will be sent and the string it holds will be
the result of the composition up to that point (which may be an empty string).
See also Event Classes.
MEMBER FUNCTION DOCUMENTATION
QIMEvent::QIMEvent ( Type type, const QString & text, int cursorPosition )
Constructs a new QIMEvent with the accept flag set to FALSE. type can be one of
QEvent::IMStartEvent, QEvent::IMComposeEvent or QEvent::IMEndEvent. text contains the
current compostion string and cursorPosition the current position of the cursor inside
void QIMEvent::accept ()
Sets the accept flag of the input method event object.
Setting the accept parameter indicates that the receiver of the event processed the input
The accept flag is not set by default.
See also ignore().
int QIMEvent::cursorPos () const
Returns the current cursor position inside the composition string. Will return 0 for
IMStartEvent and IMEndEvent.
void QIMEvent::ignore ()
Clears the accept flag parameter of the input method event object.
Clearing the accept parameter indicates that the event receiver does not want the input
The accept flag is cleared by default.
See also accept().
bool QIMEvent::isAccepted () const
Returns TRUE if the receiver of the event processed the event; otherwise returns FALSE.
int QIMEvent::selectionLength () const
Returns the number of characters in the composition string ( starting at cursorPos() )
that should be marked as selected by the input widget receiving the event. Will return 0
for IMStartEvent and IMEndEvent.
const QString & QIMEvent::text () const
Returns the composition text. This is a null string for an IMStartEvent, and contains the
final accepted string (which may be empty) in the IMEndEvent.
Copyright 1992-2001 Trolltech AS, http://www.trolltech.com. See the license file included
in the distribution for a complete license statement.
Generated automatically from the source code.
If you find a bug in Qt, please report it as described in
http://doc.trolltech.com/bughowto.html. Good bug reports help us to help you. Thank you.
The definitive Qt documentation is provided in HTML format; it is located at
$QTDIR/doc/html and can be read using Qt Assistant or with a web browser. This man page is
provided as a convenience for those users who prefer man pages, although this format is
not officially supported by Trolltech.
If you find errors in this manual page, please report them to firstname.lastname@example.org.
Please include the name of the manual page (qimevent.3qt) and the Qt version (3.1.1).
Trolltech AS 9 December 2002 QIMEvent(3qt)