QInputMethodEventLa classe QInputMethodEvent fournit les paramètres pour les événements de méthode de saisie. Plus d'informations... #include <QInputMethodEvent> Voir la position dans l'arbre des classes. HéritageHérite de QEvent. Description détailléeLa classe QInputMethodEvent fournit les paramètres pour les événements de méthode de saisie. Les événements de méthode de saisie sont envoyés aux widgets quand une méthode de saisie est utilisée pour entrer du texte dans un widget. Les méthodes de saisie sont largement utilisées pour saisir du texte dans une langue avec des caractères non-latin. Notez que lors de la création de widgets personnalisés d'édition de texte, l'attribut de fenêtre Qt::WA_InputMethodEnabled doit être défini de façon explicite (en utilisant la fonction QWidget::setAttribute()), de manière à recevoir les événements de méthode de saisie. Les événements sont intéressants pour les auteurs de widgets de saisie clavier qui veulent être en mesure de gérer correctement les langages avec la saisie de caractères complexes.
Quand l'utilisateur appuie sur la première touche sur un clavier, un contexte de saisie est créé. Ce contexte de saisie contiendra une chaîne des caractères tapés.
Avec chaque nouvelle touche pressée, la méthode de saisie tentera de créer une chaîne correspondante pour le texte tapé jusque-là appelé chaîne de préédition. Tant que le contexte est activé, l'utilisateur peut seulement déplacer le curseur à l'intérieur de la chaîne appartenant à ce contexte de saisie.
À un certain moment, l'utilisateur activera un composant de l'interface utilisateur (peut-être en utilisant une touche particulière) où il peut choisir parmi un nombre de chaînes correspondant au texte qu'il a entré jusqu'à maintenant. L'utilisateur peut soit confirmer son choix, soit l'annuler ; dans tous les cas, le contexte de saisie sera fermé. QInputMethodEvent modélise ces trois étapes et transfère l'information nécessaire pour afficher correctement le résultat intermédiaire. QInputMethodEvent possède deux paramètres principaux : preeditString() etcommitString(). Le paramètre preeditString() fournit la chaîne de préédition actuellement active. Le paramètre commitString() fournit un texte qui devrait être ajouté au (ou remplacer des parties du) texte du widget d'édition. Il est habituellement un résultat des opérations d'entrée et doit être inséré dans le texte des widgets directement avant la chaîne de préédition. Si commitString() doit remplacer des parties du texte dans l'éditeur, replacementLength() contiendra le nombre de caractères qui seront remplacés. replacementStart() contient la position à laquelle les caractères doivent être remplacés par rapport au début de la chaîne de préédition. Certains attributs contrôlent l'apparence visuelle de la chaîne de préédition (l'apparence visuelle du texte en dehors de la chaîne de préédition est contrôlée par le widget même). L'énumération AttributeType décrit les différents attributs qui peuvent être activés. Une classe implémentant QWidget::inputMethodEvent() ou QGraphicsItem::inputMethodEvent() devrait au moins savoir interpréter et honorer les attributs TextFormat et Cursor. Depuis que les méthodes de saisie ont besoin de pouvoir demander certaines propriétés au widget ou à l'item graphique, les sous-classes doivent également implémenter QWidget::inputMethodQuery() et QGraphicsItem::inputMethodQuery(), respectivement. À la réception d'un événement de méthode de saisie, le widget du texte doit effectuer les étapes suivantes :
Lorsque le remplacement fait que la zone de la chaîne de préédition est ignorée, c'est-à-dire un remplacement commençant à -1 avec une longueur de 2, il supprimera le dernier caractère avant la chaîne de préédition et le premier caractère juste après et insèrera la chaîne mémorisée directement avant la chaîne de préédition. Si le widget implémente annuler/refaire, cette opération est ajoutée à la pile d'annulation.
Si le widget implémente annluer/refaire, le preeditString() ne devrait en aucune façon influencer la pile de annuler/refaire. Le widget devrait examiner la liste des attributs à appliquer sur la chaîne de préédition. Il doit pouvoir interpréter au minimum les attributs TextFormat et Cursor en les affichant comme spécifié. Voir aussi QInputContext. Typeenum QInputMethodEvent::AttributeType
Voir aussi Attribute. Fonctions membresQInputMethodEvent::QInputMethodEvent ()Construit un événement de type QEvent::InputMethod. attributes(), preeditString(), commitString(), replacementStart() et replacementLength() sont initialisés aux valeurs par défaut. Voir aussi setCommitString(). QInputMethodEvent::QInputMethodEvent ( const QString & preeditText, const QList<Attribute> & attributes )Construit un événement de type QEvent::InputMethod. Le texte de préédition est défini à preeditText, les attributs à attributes. Les valeurs commitString(), replacementStart() et replacementLength() peuvent être fixées en utilisant setCommitString(). Voir aussi preeditString() et attributes(). QInputMethodEvent::QInputMethodEvent ( const QInputMethodEvent & other )Construit une copie de other. const QList<Attribute> & QInputMethodEvent::attributes () constRetourne la list des attributs passés au constructeur de QInputMethodEvent. Les attributs contrôlent l'apparence visuelle de la chaîne de préédition (l'apparence visuelle du texte en dehors de la chaîne de préédition est contrôlée par le widget même). Voir aussi preeditString() et Attribute. const QString & QInputMethodEvent::commitString () constRetourne le texte qui devrait être ajouté au (ou remplacer une partie du) texte du widget éditeur. Il est généralement le résultat des opérations d'entrée et doit être inséré dans le texte du widget juste avant la chaîne de préédition. Voir aussi setCommitString(), preeditString(), replacementStart() et replacementLength(). const QString & QInputMethodEvent::preeditString () constRetourne le texte de préédition, c'est-à-dire le texte avant que l'utilisateur n'ait commencé à l'éditer. Voir aussi commitString() et attributes(). int QInputMethodEvent::replacementLength () constRetourne le nombre de caractères à remplacer dans la chaîne de préédition. Voir aussi replacementStart() et setCommitString(). int QInputMethodEvent::replacementStart () constRetourne la position à laquelle les caractères doivent être remplacés par rapport au début de la chaîne de préédition. Voir aussi replacementLength() et setCommitString(). void QInputMethodEvent::setCommitString ( const QString & commitString, int replaceFrom = 0, int replaceLength = 0 )Définit la chaîne mémorisée à commitString. La chaîne mémorisée est le texte qui devrait être ajouté au (ou remplacer des parties du) texte du widget éditeur. Elle est généralement le résultat des opérations d'entrée et doit être insérée dans le texte du widget juste avant la chaîne de préédition. Si la chaîne mémorisée doit remplacer une partie du texte dans l'éditeur, replaceLength spécifie le nombre de caractères à remplacer. replaceFrom spécifie la position à laquelle les caractères doivent être remplacés par rapport au début de la chaîne de préédition. Voir aussi commitString(), replacementStart() et replacementLength(). RemerciementsMerci à Dimitry Ernot pour la traduction et à Jonathan Courtois ainsi qu'à Jacques Thery pour leur relecture ! |
Publicité
Best OfActualités les plus luesSemaine
Mois
Année
Le blog Digia au hasardCréer des applications avec un style Metro avec Qt, exemples en QML et C++, un article de Digia Qt traduit par Thibaut CuvelierLe blog Digia est l'endroit privilégié pour la communication sur l'édition commerciale de Qt, où des réponses publiques sont apportées aux questions les plus posées au support. Lire l'article.
CommunautéRessources
Liens utilesContact
Qt dans le magazine |
Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. | Qt 4.7 | |
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD. | ||
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP ! |
Copyright © 2000-2012 - www.developpez.com