Bonjour, travaillant sur un programme utilisant une interface graphique, il y a un moment ou je dois afficher 14 rectangles qui sont chacun cliquable, et recopier 14 fois le même texte me permettant de créer ces rectangles me paraît un peu bourratif pour le programme, donc j'ai décidé de faire une fonction qui regroupe la partie création du rectangle et de la zone cliquable et de mettre en paramètre changeable les coordonnées et le texte voulu cette fonction ressemble à ça:
et du coup cette fonction sera appelé de cette manière si par exemple je veux créer mon premier rectangle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 def rectangle_choix(coord,coord_text,text): depart=pygame.draw.rect(ecran,Blanc,(coord),5) placeTexte = Police2.render(text,True,Blanc) rectangleTexte = placeTexte.get_rect() rectangleTexte .topleft = (coord_text) ecran.blit(placeTexte,rectangleTexte) clickable_area = depart continuer=1 while continuer: for event in pygame.event.get(): if event.type == QUIT: continuer=0 pygame.quit() continuer=1 if event.type == MOUSEBUTTONDOWN: if event.button == 1: if clickable_area.collidepoint(event.pos): fichier=open("trajet.txt","w") fichier.write(text) fichier.close() display.update(ecran.fill(0)) fenetre_arrivee()
Mais le problème est la justement, autant avant, en créant chaque rectangle à la main, ils apparaissaient, mais la, il ne veulent plus apparaître, mon programme n'affiche aucune erreur en particulier, donc je ne comprend pas en quoi cela ne marche pas... Merci d'avance si quelqu'un peut m'aider!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 rectangle_choix((60,135,150,70),(80,150),'entree') pygame.display.flip()
Partager