J'écris une interface graphique Tkinter en Python. Il a une entrée pour la recherche avec un ListBox de résultats ci-dessous. Le ListBox a également une barre de défilement. Comment puis-je faire défiler avec la souris et les touches fléchées pour travailler dans le ListBox sans changer le focus du champ de recherche? IE Je veux que l'utilisateur puisse taper une recherche, faire défiler et continuer à taper sans avoir à passer d'un widget à l'autre. MerciComment faire pour faire défiler un Tkinter ListBox inactif?
Répondre
Ajoutez des liaisons au widget d'entrée qui appellent les commandes yview
et see
de la liste de sélection lorsque l'utilisateur appuie de haut en bas ou utilise la molette de défilement haut/bas.
Par exemple, vous pouvez faire quelque chose comme ça pour les touches fléchées:
class App(Tkinter.Tk):
def __init__(self):
Tkinter.Tk.__init__(self)
self.entry = Tkinter.Entry()
self.listbox = Tkinter.Listbox()
self.entry.pack(side="top", fill="x")
self.listbox.pack(side="top", fill="both", expand=True)
for i in range(100):
self.listbox.insert("end", "item %s" % i)
self.entry.bind("<Down>", self.OnEntryDown)
self.entry.bind("<Up>", self.OnEntryUp)
def OnEntryDown(self, event):
self.listbox.yview_scroll(1,"units")
def OnEntryUp(self, event):
self.listbox.yview_scroll(-1,"units")
Cela a du sens. Mais comment puis-je les contrôler explicitement? Jusqu'à présent, je viens d'utiliser mylistbox.config (yscrollcommand = myscrollbar.set) et myscrollbar.config (commande = mylistbox.yview). – Jeff
@Jeff: J'ai ajouté un exemple de code à ma réponse pour répondre à votre question. –
merci! Divers sites Web l'ont rendu complexe, mais avec votre exemple, c'est super facile. – Jeff
- 1. Faire défiler un VirtualizingStackPanel de ListBox avec les boutons
- 2. Comment faire pour faire défiler un RichTextBox vers le bas?
- 3. Comment faire pour faire défiler un TStringGrid dynamiquement?
- 4. Comment faire pour faire un TCheckListBox défiler verticalement?
- 5. Faire défiler plusieurs listes de boîtes Tkinter ensemble
- 6. Faire défiler un ViewController?
- 7. faire défiler un xml
- 8. faire défiler un UIScrollView Programatically
- 9. Faire défiler des DataTemplates dans ListBox sur une minuterie
- 10. Comment faire pour faire défiler le contrôle TreeView par programme?
- 11. Comment faire pour faire défiler UITableView à une certaine position?
- 12. jscrollpane pour faire défiler un panneau
- 13. Comment faire pour faire défiler une image d'arrière-plan div?
- 14. Comment faire pour faire défiler une table horizontalement?
- 15. Comment utiliser le Three20 pour faire défiler
- 16. Comment utiliser jquery pour faire défiler horizontalement
- 17. Comment faire défiler pour l'application de chat?
- 18. Comment faire défiler manuellement un panneau?
- 19. Comment faire défiler par programme un ScrollView?
- 20. Comment faire défiler correctement CEdit?
- 21. comment faire défiler un Tipp ScrolledWindow
- 22. Faire un élément ListBox modifiable
- 23. Comment faire pour faire défiler deux composants avec une seule barre de défilement verticale
- 24. comment faire défiler de fantaisie
- 25. Zoomer/faire défiler jusqu'à
- 26. Comment utiliser un NSTimer pour faire défiler automatiquement le texte?
- 27. ABPeoplePickerView - Comment l'obtenir pour faire défiler vers un enregistrement sélectionné?
- 28. Comment faire pour synchroniser un SelectedItem TreeView et ListBox?
- 29. faire défiler dans usercontrol
- 30. Éviter un ListBox à défiler
Je pense que je pourrais simplement lier les boutons de la souris et les touches fléchées pour faire le défilement manuellement ... http: // www .daniweb.com/code/snippet217059.html explique les événements de défilement de la souris, et les touches fléchées sont faciles. Alors maintenant j'ai juste besoin de savoir à quoi les lier. – Jeff