2010-05-18 7 views

Répondre

2

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() 
+0

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? –

+0

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. –

+0

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. –

0

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.

Questions connexes