Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QInputMethod Class Reference

The QInputMethod class provides access to the active text input method. More...

#include <qinputmethod.h>

+ Inheritance diagram for QInputMethod:
+ Collaboration diagram for QInputMethod:

Public Types

enum  Action { Click , ContextMenu }
 Indicates the kind of action performed by the user. More...
 

Public Slots

void show ()
 Requests virtual keyboard to open.
 
void hide ()
 Requests virtual keyboard to close.
 
void update (Qt::InputMethodQueries queries)
 Called by the input item to inform the platform input methods when there has been state changes in editor's input method query attributes.
 
void reset ()
 Resets the input method state.
 
void commit ()
 Commits the word user is currently composing to the editor.
 
void invokeAction (Action a, int cursorPosition)
 Called by the input item when the word currently being composed is tapped by the user, as indicated by the action a and the given cursorPosition.
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 

Signals

void cursorRectangleChanged ()
 
void anchorRectangleChanged ()
 
void keyboardRectangleChanged ()
 
void inputItemClipRectangleChanged ()
 
void visibleChanged ()
 
void animatingChanged ()
 
void localeChanged ()
 
void inputDirectionChanged (Qt::LayoutDirection newDirection)
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

QTransform inputItemTransform () const
 Returns the transformation from input item coordinates to the window coordinates.
 
void setInputItemTransform (const QTransform &transform)
 Sets the transformation from input item coordinates to window coordinates to be transform.
 
QRectF inputItemRectangle () const
 
void setInputItemRectangle (const QRectF &rect)
 
QRectF cursorRectangle () const
 
QRectF anchorRectangle () const
 
QRectF keyboardRectangle () const
 
QRectF inputItemClipRectangle () const
 
bool isVisible () const
 
void setVisible (bool visible)
 Controls the keyboard visibility.
 
bool isAnimating () const
 
QLocale locale () const
 
Qt::LayoutDirection inputDirection () const
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Static Public Member Functions

static QVariant queryFocusObject (Qt::InputMethodQuery query, const QVariant &argument)
 Send query to the current focus object with parameters argument and return the result.
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 

Properties

QRectF cursorRectangle
 Input item's cursor rectangle in window coordinates.
 
QRectF anchorRectangle
 Input item's anchor rectangle in window coordinates.
 
QRectF keyboardRectangle
 Virtual keyboard's geometry in window coordinates.
 
QRectF inputItemClipRectangle
 Input item's clipped rectangle in window coordinates.
 
bool visible
 Virtual keyboard's visibility on the screen.
 
bool animating
 True when the virtual keyboard is being opened or closed.
 
QLocale locale
 Current input locale.
 
Qt::LayoutDirection inputDirection
 Current input direction.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Friends

class QGuiApplication
 
class QGuiApplicationPrivate
 
class QPlatformInputContext
 

Additional Inherited Members

- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

The QInputMethod class provides access to the active text input method.

\inmodule QtGui

QInputMethod is used by the text editors for integrating to the platform text input methods and more commonly by application views for querying various text input method-related information like virtual keyboard visibility and keyboard dimensions.

Qt Quick also provides access to QInputMethod in QML through \l{QmlGlobalQtObject}{Qt global object} as Qt.inputMethod property.

Definition at line 18 of file qinputmethod.h.

Member Enumeration Documentation

◆ Action

Indicates the kind of action performed by the user.

\value Click A normal click/tap \value ContextMenu A context menu click/tap (e.g. right-button or tap-and-hold)

See also
invokeAction()
Enumerator
Click 
ContextMenu 

Definition at line 48 of file qinputmethod.h.

Member Function Documentation

◆ anchorRectangle()

QRectF QInputMethod::anchorRectangle ( ) const

Definition at line 127 of file qinputmethod.cpp.

References d, Qt::ImAnchorRectangle, and inputMethodQueryRectangle_helper().

+ Here is the call graph for this function:

◆ anchorRectangleChanged

void QInputMethod::anchorRectangleChanged ( )
signal

Referenced by QAndroidInputContext::QAndroidInputContext(), QQuickInputMethod::QQuickInputMethod(), setInputItemTransform(), and update().

+ Here is the caller graph for this function:

◆ animatingChanged

void QInputMethod::animatingChanged ( )
signal

Referenced by QQuickInputMethod::QQuickInputMethod().

+ Here is the caller graph for this function:

◆ commit

void QInputMethod::commit ( )
slot

Commits the word user is currently composing to the editor.

The function is mostly needed by the input methods with text prediction features and by the methods where the script used for typing characters is different from the script that actually gets appended to the editor. Any kind of action that interrupts the text composing needs to flush the composing state by calling the commit() function, for example when the cursor is moved elsewhere.

Definition at line 325 of file qinputmethod.cpp.

References QPlatformInputContext::commit(), and d.

Referenced by QWidgetLineControl::processKeyEvent(), and QQuickTextInputPrivate::processKeyEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cursorRectangle()

QRectF QInputMethod::cursorRectangle ( ) const

Definition at line 114 of file qinputmethod.cpp.

References d, Qt::ImCursorRectangle, and inputMethodQueryRectangle_helper().

+ Here is the call graph for this function:

◆ cursorRectangleChanged

void QInputMethod::cursorRectangleChanged ( )
signal

Referenced by QAndroidInputContext::QAndroidInputContext(), QQuickInputMethod::QQuickInputMethod(), QWindowsInputContext::QWindowsInputContext(), setInputItemTransform(), and update().

+ Here is the caller graph for this function:

◆ hide

void QInputMethod::hide ( )
slot

Requests virtual keyboard to close.

Normally applications should not need to call this function, keyboard should automatically close when the text editor loses focus, for example when the parent view is closed.

Definition at line 185 of file qinputmethod.cpp.

References d, and QPlatformInputContext::hideInputPanel().

Referenced by QWidgetLineControl::processKeyEvent(), and setVisible().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ inputDirection()

Qt::LayoutDirection QInputMethod::inputDirection ( ) const

Definition at line 259 of file qinputmethod.cpp.

References d, QPlatformInputContext::inputDirection(), and Qt::LeftToRight.

+ Here is the call graph for this function:

◆ inputDirectionChanged

void QInputMethod::inputDirectionChanged ( Qt::LayoutDirection newDirection)
signal

Referenced by QQuickInputMethod::QQuickInputMethod(), QWaylandQtTextInputMethod::QWaylandQtTextInputMethod(), and QWaylandTextInput::QWaylandTextInput().

+ Here is the caller graph for this function:

◆ inputItemClipRectangle()

QRectF QInputMethod::inputItemClipRectangle ( ) const

Definition at line 156 of file qinputmethod.cpp.

References d, Qt::ImInputItemClipRectangle, and inputMethodQueryRectangle_helper().

+ Here is the call graph for this function:

◆ inputItemClipRectangleChanged

void QInputMethod::inputItemClipRectangleChanged ( )
signal

Referenced by QAndroidInputContext::QAndroidInputContext(), QQuickInputMethod::QQuickInputMethod(), and update().

+ Here is the caller graph for this function:

◆ inputItemRectangle()

QRectF QInputMethod::inputItemRectangle ( ) const
Since
5.1

Returns the input item's geometry in input item coordinates.

See also
setInputItemRectangle()

Definition at line 75 of file qinputmethod.cpp.

References d.

Referenced by QPlatformInputContext::inputItemRectangle(), and QWaylandTextInputPrivate::sendInputPanelState().

+ Here is the caller graph for this function:

◆ inputItemTransform()

QTransform QInputMethod::inputItemTransform ( ) const

Returns the transformation from input item coordinates to the window coordinates.

Definition at line 45 of file qinputmethod.cpp.

References d.

Referenced by QAndroidInputContext::handleLocationChanged(), QPlatformInputContext::inputItemRectangle(), QPlatformInputContext::queryFocusObject(), QWaylandTextInputPrivate::sendInputPanelState(), and QPlatformInputContext::setSelectionOnFocusObject().

+ Here is the caller graph for this function:

◆ invokeAction

void QInputMethod::invokeAction ( Action a,
int cursorPosition )
slot

Called by the input item when the word currently being composed is tapped by the user, as indicated by the action a and the given cursorPosition.

Input methods often use this information to offer more word suggestions to the user.

Definition at line 349 of file qinputmethod.cpp.

References d, and QPlatformInputContext::invokeAction().

+ Here is the call graph for this function:

◆ isAnimating()

bool QInputMethod::isAnimating ( ) const

Definition at line 233 of file qinputmethod.cpp.

References d, and QPlatformInputContext::isAnimating().

+ Here is the call graph for this function:

◆ isVisible()

bool QInputMethod::isVisible ( ) const

Definition at line 202 of file qinputmethod.cpp.

References d, and QPlatformInputContext::isInputPanelVisible().

Referenced by QWaylandTextInputPrivate::sendInputPanelState().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ keyboardRectangle()

QRectF QInputMethod::keyboardRectangle ( ) const

Definition at line 140 of file qinputmethod.cpp.

References d, and QPlatformInputContext::keyboardRect().

+ Here is the call graph for this function:

◆ keyboardRectangleChanged

void QInputMethod::keyboardRectangleChanged ( )
signal

Referenced by QQuickInputMethod::QQuickInputMethod(), QWaylandQtTextInputMethod::QWaylandQtTextInputMethod(), and QWaylandTextInput::QWaylandTextInput().

+ Here is the caller graph for this function:

◆ locale()

QLocale QInputMethod::locale ( ) const

Definition at line 246 of file qinputmethod.cpp.

References QLocale::c(), d, and QPlatformInputContext::locale().

+ Here is the call graph for this function:

◆ localeChanged

void QInputMethod::localeChanged ( )
signal

Referenced by QQuickInputMethod::QQuickInputMethod(), QWaylandQtTextInputMethod::QWaylandQtTextInputMethod(), and QWaylandTextInput::QWaylandTextInput().

+ Here is the caller graph for this function:

◆ queryFocusObject()

QVariant QInputMethod::queryFocusObject ( Qt::InputMethodQuery query,
const QVariant & argument )
static

Send query to the current focus object with parameters argument and return the result.

Definition at line 386 of file qinputmethod.cpp.

References argument, Qt::DirectConnection, QMetaObject::invokeMethod(), ok, Q_ARG, Q_ASSERT, Q_RETURN_ARG, qGuiApp, and QCoreApplication::sendEvent().

Referenced by QWaylandInputMethodEventBuilder::buildCommit(), QAndroidInputContext::getExtractedText(), QAndroidInputContext::getTextAfterCursor(), QAndroidInputContext::getTextBeforeCursor(), QAndroidInputContext::handleLocationChanged(), QPlatformInputContext::queryFocusObject(), QWindowsInputContext::reconvertString(), and QPlatformInputContext::setSelectionOnFocusObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ reset

void QInputMethod::reset ( )
slot

Resets the input method state.

For example, a text editor normally calls this method before inserting a text to make widget ready to accept a text.

Input method resets automatically when the focused editor changes.

Definition at line 309 of file qinputmethod.cpp.

References d, and QPlatformInputContext::reset().

+ Here is the call graph for this function:

◆ setInputItemRectangle()

void QInputMethod::setInputItemRectangle ( const QRectF & rect)
Since
5.1

Sets the input item's geometry to be rect, in input item coordinates. This needs to be updated by the focused window like QQuickCanvas whenever item is moved inside the scene, or focus is changed.

Definition at line 88 of file qinputmethod.cpp.

References d, and rect.

◆ setInputItemTransform()

void QInputMethod::setInputItemTransform ( const QTransform & transform)

Sets the transformation from input item coordinates to window coordinates to be transform.

Item transform needs to be updated by the focused window like QQuickCanvas whenever item is moved inside the scene.

Definition at line 56 of file qinputmethod.cpp.

References anchorRectangleChanged(), cursorRectangleChanged(), d, and emit.

+ Here is the call graph for this function:

◆ setVisible()

void QInputMethod::setVisible ( bool visible)

Controls the keyboard visibility.

Equivalent to calling show() (if visible is true) or hide() (if visible is false).

See also
show(), hide()

Definition at line 218 of file qinputmethod.cpp.

References hide(), show(), and visible.

+ Here is the call graph for this function:

◆ show

void QInputMethod::show ( )
slot

Requests virtual keyboard to open.

If the platform doesn't provide virtual keyboard the visibility remains false.

Normally applications should not need to call this function, keyboard should automatically open when the text editor gains focus.

Definition at line 170 of file qinputmethod.cpp.

References d, and QPlatformInputContext::showInputPanel().

Referenced by setVisible().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ update

void QInputMethod::update ( Qt::InputMethodQueries queries)
slot

Called by the input item to inform the platform input methods when there has been state changes in editor's input method query attributes.

When calling the function queries parameter has to be used to tell what has changes, which input method can use to make queries for attributes it's interested with QInputMethodQueryEvent.

In particular calling update whenever the cursor position changes is important as that often causes other query attributes like surrounding text and text selection to change as well. The attributes that often change together with cursor position have been grouped in Qt::ImQueryInput value for convenience.

Definition at line 279 of file qinputmethod.cpp.

References anchorRectangleChanged(), cursorRectangleChanged(), d, emit, focus, Qt::ImAnchorRectangle, Qt::ImCursorRectangle, Qt::ImEnabled, Qt::ImInputItemClipRectangle, inputItemClipRectangleChanged(), qApp, QPlatformInputContextPrivate::setInputMethodAccepted(), and QPlatformInputContext::update().

+ Here is the call graph for this function:

◆ visibleChanged

void QInputMethod::visibleChanged ( )
signal

Referenced by QQuickInputMethod::QQuickInputMethod(), QWaylandQtTextInputMethod::QWaylandQtTextInputMethod(), and QWaylandTextInput::QWaylandTextInput().

+ Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ QGuiApplication

friend class QGuiApplication
friend

Definition at line 85 of file qinputmethod.h.

◆ QGuiApplicationPrivate

friend class QGuiApplicationPrivate
friend

Definition at line 86 of file qinputmethod.h.

◆ QPlatformInputContext

friend class QPlatformInputContext
friend

Definition at line 87 of file qinputmethod.h.

Property Documentation

◆ anchorRectangle

QInputMethod::anchorRectangle
read

Input item's anchor rectangle in window coordinates.

Anchor rectangle is often used by various text editing controls like text prediction popups for following the text selection.

Definition at line 23 of file qinputmethod.h.

◆ animating

QInputMethod::animating
read

True when the virtual keyboard is being opened or closed.

Animating is false when keyboard is fully open or closed. When animating is true and visibility is true keyboard is being opened. When animating is true and visibility is false keyboard is being closed.

Definition at line 28 of file qinputmethod.h.

◆ cursorRectangle

QInputMethod::cursorRectangle
read

Input item's cursor rectangle in window coordinates.

Cursor rectangle is often used by various text editing controls like text prediction popups for following the text being typed.

Definition at line 22 of file qinputmethod.h.

◆ inputDirection

QInputMethod::inputDirection
read

Current input direction.

Definition at line 30 of file qinputmethod.h.

◆ inputItemClipRectangle

QInputMethod::inputItemClipRectangle
read

Input item's clipped rectangle in window coordinates.

The clipped input rectangle is often used by various input methods to determine how much screen real estate is available for the input method (e.g. Virtual Keyboard).

Definition at line 25 of file qinputmethod.h.

◆ keyboardRectangle

QInputMethod::keyboardRectangle
read

Virtual keyboard's geometry in window coordinates.

This might be an empty rectangle if it is not possible to know the geometry of the keyboard. This is the case for a floating keyboard on android.

Definition at line 24 of file qinputmethod.h.

Referenced by QWaylandTextInputPrivate::sendInputPanelState().

◆ locale

QInputMethod::locale
read

Current input locale.

Definition at line 29 of file qinputmethod.h.

◆ visible

QInputMethod::visible
read

Virtual keyboard's visibility on the screen.

Input method visibility remains false for devices with no virtual keyboards.

See also
show(), hide()

Definition at line 27 of file qinputmethod.h.

Referenced by setVisible().


The documentation for this class was generated from the following files: