Comment ajouter des boutons de manière aléatoire à une interface graphique Tkinter? J'en ai besoin pour pouvoir créer un bouton, puis le mettre n'importe où sur la fenêtre, est-ce possible? J'utilise Python 2.6 sur Windows.Ajouter aléatoirement des boutons à l'interface graphique Tkinter?
Répondre
Si vous souhaitez placer des boutons au hasard (ou tout élément non aligné sur une grille, etc.), vous pouvez utiliser le place geometry manager. Selon la plate-forme, les boutons superposés peuvent ne pas se comporter comme vous le souhaitez, alors vous pouvez les éviter.
Voici un exemple simple:
from Tkinter import *
from random import random
root = Tk()
frame = Frame(root, height=200, width=200)
for i in range(10):
Button(frame, text=str(i)).place(x=random() * 150, y=random() * 180)
frame.pack()
root.mainloop()
Il y a plusieurs options à choisir. Par exemple, vous pouvez concevoir sur une grille où vous avez six boutons par ligne. Ensuite, il suffit de commencer à la ligne 0, en incrémentant la colonne pour chaque bouton. Lorsque vous arrivez à la dernière colonne, réinitialisez la colonne à 0 et incrémentez la ligne de un.
Une autre option consiste à utiliser un widget de texte comme conteneur et à intégrer vos boutons dans le widget de texte avec l'habillage activé. Avec cette astuce, les boutons remplissent automatiquement une ligne et s'enroulent si l'utilisateur agrandit ou réduit les fenêtres principales. C'est un peu plus de travail, mais ça marche bien si c'est le comportement que vous voulez.
- 1. Générer des boutons Tkinter dynamiquement
- 2. Tkinter aide boutons
- 3. Comment gérer efficacement les états des boutons dans Tkinter
- 4. Zend_Form: Ajouter des éléments à boutons radio
- 5. Ajouter des boutons à la barre TAB
- 6. MPVideoPlayer ajouter/supprimer des boutons
- 7. Comment ajouter une marge à une fenêtre tkinter?
- 8. Boutons d'interface graphique dans Cocoa
- 9. Ajouter des boutons personnalisés au MessageBox existant
- 10. Comment ajouter des boutons à la barre d'outils Eclipse?
- 11. Je veux ajouter des boutons à chaque vue de l'iPhone
- 12. Mise à jour des étiquettes tkinter en python
- 13. ajouter des sommets personnalisés à un graphique boost
- 14. Graphiques R: Ajouter des étiquettes au graphique à barres empilées
- 15. Flex: comment ajouter des axes horizontaux à un graphique?
- 16. Puis-je ajouter des éléments à une interface graphique Java?
- 17. Comment ajouter dynamiquement des boutons radio, des texboxes et des boutons dans une table par code?
- 18. ajouter Microsoft Office graphique
- 19. tkinter: glisser des widgets
- 20. Ajouter un graphique supplémentaire à un UITableViewCell
- 21. Linq retourne aléatoirement des résultats NULL périodiques
- 22. Sphinx échoue aléatoirement à combiner des sous-requêtes
- 23. Algorithme permettant d'ajouter des NSStrings générés aléatoirement à NSMutableArray
- 24. Passer des arguments supplémentaires avec Tkinter Bindings
- 25. Tkinter dropdown Menu avec des raccourcis clavier?
- 26. Modules nommés aléatoirement
- 27. iPhone: UIImagePickerController échoue aléatoirement à prendre l'image
- 28. Deux images Tkinter
- 29. JTabbedPane se montre aléatoirement
- 30. Comment ajouter des boutons dans ContextMenu dans Android
OK, j'aime ça. Ça marche plutôt bien. Mais, comment éviter les boutons qui se chevauchent? Je ne le veux pas du tout. Est-il possible de les faire également espacés? –
Eh bien, ils ne seraient pas aléatoires, n'est-ce pas? :-) Si vous voulez des boutons plus espacés, utilisez le gestionnaire de géométrie de grille (http://effbot.org/tkinterbook/grid.htm). Sinon, vous devrez gérer vous-même les intersections. –
La raison pour laquelle j'ai besoin d'eux au hasard est que je ne sais pas combien de boutons il faudra créer. Cela peut être 1 la première fois, mais 10 la suivante. J'ai juste besoin qu'ils soient beaux mais ne se chevauchent pas du tout. Comment pourrais-je gérer les intersections? Si c'est ce que je dois faire, je suis ouvert à l'apprentissage. –