J'ai un petit IDE pour un langage de modélisation que j'ai écrit, implémenté dans PyQt/PySide, et j'essaie d'implémenter un navigateur de code qui vous permet de sauter à différentes sections dans le fichier en cours d'édition.Puis-je retarder/regrouper les réactions aux événements QPlainTextEditor.textChanged?
L'implémentation actuelle est la suivante: (1) se connecter à QPlainTextEditor.textChanged, (2) chaque fois qu'un changement, (sloppily) analyser le fichier et mettre à jour le volet navigateur
Il semble fonctionner correctement, mais Je suis inquiet que cela pourrait causer des problèmes de performance majeurs pour les gros fichiers sur les systèmes plus lents, en particulier si plus de choses sont connectées à textChanged dans le futur. Ma question: Quelqu'un a-t-il mis en œuvre une réaction différée aux événements, de sorte que plusieurs événements (c'est-à-dire des frappes) sur une courte période déclenchent une seule mise à jour (disons une fois par seconde)? Et y a-t-il une bonne façon de faire cela?
Merci, Michael
Fonctionne magnifiquement, merci! (Je m'inquiétais d'utiliser des minuteurs parce que cela ressemblait à du piratage de quelque chose, mais c'est assez simple et élégant!) –
@MichaelClerx merci pour le compliment :) ces choses sont l'une des utilisations usuelles des minuteurs. Parce que vous ne pouvez pas vraiment "dormir" dans une application graphique, les minuteurs sont le goto pour tout ce qui est lié au retard. – Hayt