2016-11-17 3 views
1

Я - питон-код начального уровня, который хочет создать игру Guess Who. В университете я еще не научился импортировать изображения и привязывать их к фиксированным местам на экране (напоминающим игровое поле). Есть ли способ щелкнуть по определенному изображению и вызвать onClickEvent, где выбран этот конкретный символ (изображение). Большинство моих способностей кодирования находятся на python, но я скептически отношусь к этому, если это лучший язык для создания такого проекта.Clickable Images for Python

ответ

-1

Я не знаю, какова область и формат проекта, но Я бы порекомендовал javascript/html, если это разрешено. Мне очень нравится Python, и изучение Javascript не было растяжкой вообще. HTML предлагает встроенную графику и простую обработку изображений.

Существует также масса ресурсов.

Я должен был использовать Tkinter (инструмент UI питона) в прошлом. Я бы не рекомендовал, если вы можете избежать этого.

+1

Но он спросил как это сделать в Python ... – Douglas

1

Я бы сказал, что TkInter - ваш лучший выбор. Сначала немного громоздко, но это хорошо для новичков. Вы должны иметь возможность создать красивый графический пользовательский интерфейс, который откроет окно, в котором хранятся ваши изображения, меню, кнопки и т. Д.

Посмотрите на полезные документы и примеры here.

Если Python не является обязательным требованием, я тоже хотел бы также рекомендовать JS, HTML и CSS (вы должны будете использовать все три вместе звучит страшней, чем это.: P)

3

Каждый GUI имеет Button виджет, который является кликой и (в основном) может отображать изображение.

Но в основном в графическом интерфейсе вы можете назначить событие click каждому объекту ie. Label с 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() 

Графические модули, такие как PyGame может отображать изображение тоже, и есть событие щелчка, но иногда нужно проверить вручную, если вы выбрали в области с изображением (и вы должны создать mainloop вручную)