2009-08-29 30 views
1

Je travaille sur l'implémentation d'un clavier virtuel pour un navigateur basé sur QtWebKit. J'ai beaucoup de mal à comprendre comment QtWebKit peint les contrôles dans la page réelle. Au départ, je pensais qu'il s'agissait d'instances QLineEdit, mais elles ne le sont pas. En plongeant dans l'implémentation, il apparaît que le code de collage entre Qt et WebKit peint le champ de texte en utilisant QStyle et QPainter. Malheureusement, je suis très nouveau à Qt et donc je ne comprends pas où dans la boucle d'événement les presses de la souris pour ces événements sont interprétées. J'ai trouvé Editor :: canEdit() au fond de la pile des appels, et maintenant je peux faire apparaître le clavier virtuel lorsque l'utilisateur clique sur un champ de texte dans la page. Le clavier virtuel attendait alors un pointeur vers une instance de QWidget, mais Edito :: canEdit() ne porte pas cette information et je ne trouve nulle part où une instance semblable à QWidget est exposée. Je suis vraiment perplexe, tout conseil serait le bienvenu.Clavier virtuel pour navigateur basé sur QtWebKit ou comment obtenir le champ de texte actuellement ciblé?

Merci!

Répondre

2

Vous pourriez avoir plus de chance en accrochant le clavier virtuel dans le système de méthode de saisie Qt. Recherchez "InputMethod" dans le code source de QtWebKit Api, c'est-à-dire les fichiers qweb *. *.

+0

Depuis Qt 4.5.2, vous ne pouvez pas vous connecter aux mécanismes d'entrée de WebKit, mais ils ont ajouté la structure de support à 4.6. – EightyEight