2016-11-17 1 views
1

Je suis un codeur python d'entrée de gamme qui cherche à créer un jeu de style Guess Who. À l'université, je n'ai pas encore appris à importer des images et à les lier à des endroits fixes sur un écran (ressemblant au plateau de jeu). Est-il possible de cliquer sur une image spécifique et d'avoir un onClickEvent à se produire, où ce caractère spécifique (image) est choisi. La majorité de mes capacités de codage sont en python, mais je suis sceptique si cela est la meilleure langue possible de faire un projet comme celui-ci dans.Images cliquables pour Python

Répondre

-1

Je ne sais pas quelle est la portée et le format du projet est, mais Je recommanderais javascript/html si c'est autorisé. Je suis très à l'aise avec Python et apprendre Javascript n'a pas été un étirement du tout. HTML offre des graphismes intégrés et une gestion simple des images.

Il y a aussi une tonne de ressources.

J'ai dû utiliser Tkinter (l'outil d'interface utilisateur de python) dans le passé. Je ne recommanderais pas si vous pouvez l'éviter.

+1

Mais il a demandé comment le faire en Python ... – Douglas

1

Je dirais que TkInter est votre meilleur pari. Un peu encombrant au début mais c'est bon pour les débutants. Vous devriez être en mesure de faire une belle interface utilisateur graphique qui va ouvrir une fenêtre qui contient vos images, menus, boutons, etc ...

Consultez les documents utiles et les exemples here.

Si Python est pas une exigence, moi aussi je recommande également JS, HTML et CSS (vous devrez utiliser tous les trois ensemble sons plus effrayant que c'est. P)

3

GUI Chaque a Button un widget qui est cliquable et (surtout) peut afficher l'image.

Mais la plupart du temps dans GUI vous pouvez assigner l'événement de clic à chaque objet IE. Label avec Image.

ie. Tkinter

import tkinter as tk 
from PIL import Image, ImageTk 

# --- functions --- 

def on_click(event=None): 
    # `command=` calls function without argument 
    # `bind` calls function with one argument 
    print("image clicked") 

# --- main --- 

# init  
root = tk.Tk() 

# load image 
image = Image.open("image.png") 
photo = ImageTk.PhotoImage(image) 

# label with image 
l = tk.Label(root, image=photo) 
l.pack() 

# bind click event to image 
l.bind('<Button-1>', on_click) 

# button with image binded to the same function 
b = tk.Button(root, image=photo, command=on_click) 
b.pack() 

# button with text closing window 
b = tk.Button(root, text="Close", command=root.destroy) 
b.pack() 

# "start the engine" 
root.mainloop() 

modules graphiques comme PyGame peuvent afficher l'image aussi, et avoir événement click mais parfois vous devez vérifier manuellement si vous avez cliqué dans la zone avec l'image (et vous devez créer mainloop manuellement)