2010-10-29 3 views
9

J'ai essayé de faire un ComboBox qui suggérerait des options que vous tapez, un peu comme les suggestions de code IDE/code-sens, ou des suggestions de google lorsque vous tapez une recherche.Auto-complétion dans wxPython wxComboBox

Les suggestions seraient les éléments de la liste déroulante ComboBox, qui contenait la sous-chaîne tapée dans la zone de texte de la zone de liste déroulante. J'ai essayé de faire un ComboBox, sans succès, j'ai essayé les ComboBox masqués, et j'ai même essayé de sous-classer le ComboCrtl, mais j'ai toujours rencontré des problèmes de performances ou de non-être capable de faire ce que je veux du tout

J'ai environ 2500 articles dans ma liste d'articles (suggestions), et simplement effacer le ComboBox et en insérant les éléments qui correspondent est trop lent.

Comment est-ce que je ferais une telle ComboBox, ou y a-t-il même une fonctionnalité intégrée que je pourrais utiliser?

Je peux autoriser un petit délai avant que les suggestions ne soient affichées, mais toute la fenêtre suspendue pendant une seconde ou deux n'est pas acceptable, à mon avis.

Répondre

8

Il y a quelques années, j'ai fait un contrôle comme celui-ci en sous-classant TextCtrl. Il supporte le formatage HTML pour les suggestions. Here you go.

Il y a aussi la Combo Box that Suggests Options

+0

Merci Tony, Ce n'est pas exactement ce que je avais besoin, mais il m'a fait aucun doute dans la bonne direction. J'ai toujours besoin des fonctions standard de la liste déroulante, donc je pourrais assembler votre fonction d'achèvement sur une liste déroulante. – FrederikNS