![]() |
Qt 6.x
The Qt SDK
|
The QInputMethod class provides access to the active text input method. More...
#include <qinputmethod.h>
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. | |
![]() | |
void | deleteLater () |
\threadsafe | |
Signals | |
void | cursorRectangleChanged () |
void | anchorRectangleChanged () |
void | keyboardRectangleChanged () |
void | inputItemClipRectangleChanged () |
void | visibleChanged () |
void | animatingChanged () |
void | localeChanged () |
void | inputDirectionChanged (Qt::LayoutDirection newDirection) |
![]() | |
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 |
![]() | |
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< QString > | bindableObjectName () |
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). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. | |
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::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
template<typename T > | |
T | findChild (const QString &aName=QString(), 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 (const QString &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 > | |
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 QObjectList & | children () 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< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () 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 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. | |
![]() | |
QString | objectName |
the name of this object | |
Friends | |
class | QGuiApplication |
class | QGuiApplicationPrivate |
class | QPlatformInputContext |
Additional Inherited Members | |
![]() | |
QObject * | sender () 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) | |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
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.
enum QInputMethod::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)
Enumerator | |
---|---|
Click | |
ContextMenu |
Definition at line 48 of file qinputmethod.h.
QRectF QInputMethod::anchorRectangle | ( | ) | const |
Definition at line 127 of file qinputmethod.cpp.
References d, Qt::ImAnchorRectangle, and inputMethodQueryRectangle_helper().
|
signal |
Referenced by QAndroidInputContext::QAndroidInputContext(), QQuickInputMethod::QQuickInputMethod(), setInputItemTransform(), and update().
|
signal |
Referenced by QQuickInputMethod::QQuickInputMethod(), and QPlatformInputContext::emitAnimatingChanged().
|
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 QWidget::clearFocus(), QQuickDeliveryAgentPrivate::clearFocusInScope(), QQuickInputMethod::commit(), QWidgetLineControl::commitPreedit(), QWidgetTextControlPrivate::commitPreedit(), QWidgetWindow::event(), QWidgetLineControl::processKeyEvent(), QQuickTextInputPrivate::processKeyEvent(), QApplicationPrivate::setActiveWindow(), QWidget::setAttribute(), QWidgetPrivate::setEnabled_helper(), QWidget::setFocus(), QQuickDeliveryAgentPrivate::setFocusInScope(), and QGraphicsScenePrivate::setFocusItemHelper().
QRectF QInputMethod::cursorRectangle | ( | ) | const |
Definition at line 114 of file qinputmethod.cpp.
References d, Qt::ImCursorRectangle, and inputMethodQueryRectangle_helper().
|
signal |
Referenced by QAndroidInputContext::QAndroidInputContext(), QQuickInputMethod::QQuickInputMethod(), QWindowsInputContext::QWindowsInputContext(), setInputItemTransform(), and update().
|
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 QWidget::focusOutEvent(), QQuickInputMethod::hide(), QApplication::notify(), QWidgetLineControl::processKeyEvent(), and setVisible().
Qt::LayoutDirection QInputMethod::inputDirection | ( | ) | const |
Definition at line 259 of file qinputmethod.cpp.
References d, QPlatformInputContext::inputDirection(), and Qt::LeftToRight.
|
signal |
Referenced by QQuickInputMethod::QQuickInputMethod(), QWaylandQtTextInputMethod::QWaylandQtTextInputMethod(), QWaylandTextInput::QWaylandTextInput(), and QPlatformInputContext::emitInputDirectionChanged().
QRectF QInputMethod::inputItemClipRectangle | ( | ) | const |
Definition at line 156 of file qinputmethod.cpp.
References d, Qt::ImInputItemClipRectangle, and inputMethodQueryRectangle_helper().
|
signal |
Referenced by QAndroidInputContext::QAndroidInputContext(), QQuickInputMethod::QQuickInputMethod(), and update().
QRectF QInputMethod::inputItemRectangle | ( | ) | const |
Returns the input item's geometry in input item coordinates.
Definition at line 75 of file qinputmethod.cpp.
References d.
Referenced by QPlatformInputContext::inputItemRectangle(), QQuickInputMethod::inputItemRectangle(), and QWaylandTextInputPrivate::sendInputPanelState().
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(), QQuickInputMethod::inputItemTransform(), QPlatformInputContext::queryFocusObject(), QWaylandTextInputPrivate::sendInputPanelState(), QPlatformInputContext::setSelectionOnFocusObject(), QtWaylandClient::QWaylandTextInputv1::updateState(), QtWaylandClient::QWaylandTextInputv2::updateState(), and QtWaylandClient::QWaylandTextInputv4::updateState().
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().
Referenced by QQuickInputMethod::invokeAction(), QWidgetTextControlPrivate::sendMouseEventToInputContext(), QLineEditPrivate::sendMouseEventToInputContext(), QQuickTextInputPrivate::sendMouseEventToInputContext(), and QQuickTextControlPrivate::sendMouseEventToInputContext().
bool QInputMethod::isAnimating | ( | ) | const |
Definition at line 233 of file qinputmethod.cpp.
References d, and QPlatformInputContext::isAnimating().
Referenced by QQuickInputMethod::isAnimating().
bool QInputMethod::isVisible | ( | ) | const |
Definition at line 202 of file qinputmethod.cpp.
References d, and QPlatformInputContext::isInputPanelVisible().
Referenced by QQuickInputMethod::isVisible(), and QWaylandTextInputPrivate::sendInputPanelState().
QRectF QInputMethod::keyboardRectangle | ( | ) | const |
Definition at line 140 of file qinputmethod.cpp.
References d, and QPlatformInputContext::keyboardRect().
|
signal |
Referenced by QQuickInputMethod::QQuickInputMethod(), QWaylandQtTextInputMethod::QWaylandQtTextInputMethod(), QWaylandTextInput::QWaylandTextInput(), and QPlatformInputContext::emitKeyboardRectChanged().
QLocale QInputMethod::locale | ( | ) | const |
Definition at line 246 of file qinputmethod.cpp.
References QLocale::c(), d, and QPlatformInputContext::locale().
|
signal |
Referenced by QQuickInputMethod::QQuickInputMethod(), QWaylandQtTextInputMethod::QWaylandQtTextInputMethod(), QWaylandTextInput::QWaylandTextInput(), and QPlatformInputContext::emitLocaleChanged().
|
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(), QVariant::isValid(), ok, Q_ARG, Q_ASSERT, Q_RETURN_ARG, qGuiApp, QCoreApplication::sendEvent(), and QInputMethodQueryEvent::value().
Referenced by QWaylandInputMethodEventBuilder::buildCommit(), QAndroidInputContext::getExtractedText(), QAndroidInputContext::getTextAfterCursor(), QAndroidInputContext::getTextBeforeCursor(), QAndroidInputContext::handleLocationChanged(), QPlatformInputContext::queryFocusObject(), QWindowsInputContext::reconvertString(), and QPlatformInputContext::setSelectionOnFocusObject().
|
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().
Referenced by QGraphicsProxyWidget::focusInEvent(), QGraphicsProxyWidget::focusOutEvent(), QQuickComboBoxPrivate::popupVisibleChanged(), QQuickInputMethod::reset(), QLineEditPrivate::resetInputMethod(), QQuickTextEditPrivate::resetInputMethod(), QGraphicsTextItem::sceneEvent(), QWidgetLineControl::setText(), and QComboBox::showPopup().
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.
Referenced by QQuickInputMethod::setInputItemRectangle(), QQuickDeliveryAgentPrivate::updateFocusItemTransform(), and QWidgetPrivate::updateWidgetTransform().
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.
Referenced by QQuickInputMethod::setInputItemTransform(), QQuickDeliveryAgentPrivate::updateFocusItemTransform(), and QWidgetPrivate::updateWidgetTransform().
void QInputMethod::setVisible | ( | bool | visible | ) |
Controls the keyboard visibility.
Equivalent to calling show() (if visible is true
) or hide() (if visible is false
).
Definition at line 218 of file qinputmethod.cpp.
References hide(), show(), and visible.
Referenced by QQuickInputMethod::setVisible().
|
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 QWidgetPrivate::handleSoftwareInputPanel(), QApplication::notify(), setVisible(), and QQuickInputMethod::show().
|
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().
Referenced by QQuickPdfSelection::clear(), QWidgetTextControlPrivate::mouseMoveEvent(), QGraphicsTextItem::sceneEvent(), QTextEdit::scrollContentsBy(), QQuickPdfSelection::selectAll(), QWidget::setAttribute(), QWidgetPrivate::setEnabled_helper(), QGraphicsItem::setInputMethodHints(), QWidget::setInputMethodHints(), QPlainTextEditPrivate::setTopBlock(), QQuickEnterKeyAttached::setType(), QQuickInputMethod::update(), QWidget::updateMicroFocus(), and QWidgetPrivate::updateWidgetTransform().
|
signal |
Referenced by QQuickInputMethod::QQuickInputMethod(), QWaylandQtTextInputMethod::QWaylandQtTextInputMethod(), QWaylandTextInput::QWaylandTextInput(), and QPlatformInputContext::emitInputPanelVisibleChanged().
|
friend |
Definition at line 85 of file qinputmethod.h.
|
friend |
Definition at line 86 of file qinputmethod.h.
|
friend |
Definition at line 87 of file qinputmethod.h.
|
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 92 of file qinputmethod.h.
|
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 92 of file qinputmethod.h.
|
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 92 of file qinputmethod.h.
Referenced by QQuickInputMethod::anchorRectangle(), and QQuickInputMethod::cursorRectangle().
|
read |
Current input direction.
Definition at line 92 of file qinputmethod.h.
Referenced by QQuickTextPrivate::determineHorizontalAlignment(), QQuickTextInputPrivate::determineHorizontalAlignment(), QQuickInputMethod::inputDirection(), QTextEngine::isRightToLeft(), and QQuickTextInputPrivate::layoutDirection().
|
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 92 of file qinputmethod.h.
Referenced by QQuickInputMethod::inputItemClipRectangle().
|
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 92 of file qinputmethod.h.
Referenced by QQuickInputMethod::keyboardRectangle(), and QWaylandTextInputPrivate::sendInputPanelState().
|
read |
Current input locale.
Definition at line 92 of file qinputmethod.h.
Referenced by QQuickInputMethod::locale().
|
read |
Virtual keyboard's visibility on the screen.
Input method visibility remains false for devices with no virtual keyboards.
Definition at line 92 of file qinputmethod.h.
Referenced by setVisible().