Comment dessiner des images dans la fenêtre tkinter
Comment puis-je dessiner une image dans une fenêtre tkinter (je suis à l'aide de python 3.3)? Je suis à la recherche d'un énoncé qui permettrait de dessiner une image à une position donnée sur une fenêtre tkinter.
ouais...
Toutes les réponses seraient appréciés. Et voici le code source du programme (si on peut l'appeler ainsi) que je veux utiliser le code, dans le cas où vous en avez besoin.
from tkinter import *
class craftClass():
def __init__(self, x = 80, y = 80, xmotion = 0, ymotion = 0, health = 20):
self.xPos, self.yPos = x, y
self.dx, self.dy = xmotion, ymotion
def moveCraft(self):
self.xPos += self.dx
self.yPos += self.dy
class missileClass():
def __init__(self, x = 0 , y = 0):
self.xPos, self.yPos = x, y
class alienClass():
def __init__(self, x, y):
self.xPos, self.yPos = x, y
def moveForCraft(self, craftX, craftY):
if self.xPos < craftX:
self.xPos += 2
elif self.xPos > craftX:
self.xPos -= 2
else:
pass
if self.yPos < craftY:
self.yPos += 2
elif self.yPos > craftY:
self.yPos -= 2
else:
pass
craft = craftClass()
missileArray = []
alienArray = []
def keypress(event):
if event.keysym == 'Escape':
root.destroy()
x = event.char
if x == "w":
craft.dy = 1
elif x == "s":
craft.dy = -1
elif x == "a":
craft.dx = -1
elif x == "d":
craft.dx = 1
else:
print(x)
root = Tk()
print(craft.dx)
while True:
try:
root.bind_all('<Key>', keypress)
craft.moveCraft()
root.update()
except TclError:
print("exited. tcl error thrown. llop broken")
break
Je suis bien conscient que l'espacement est sorta foiré, mais c'est quelque chose qui s'est passé lors de la copie
OriginalL'auteur pipsqueaker117 | 2012-09-03
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin d'utiliser un
Canvas
widget pour mettre vos images en spécifiée (x,y) positions.En Python 3, vous pouvez le faire comme ceci:
Veuillez noter qu'en raison de Python 3 n'ayant pas un fonctionnaire
PIL
* de presse, vous êtes limités à la lecture des images de typeGIF
,PGM
ouPPM
- si vous avez besoin d'autres types de fichiers, vérifiez cette réponse.La Toile widget est très puissant et vous permet de placer vos images, montre ce qui est sur elle par le biais d'un
"canvas.update"
appel, et de supprimer un article displayer avec un"canvas.delete(item_id)"
appel. Vérifier son la documentation.Alors que Tkinter, devrait être suffisant pour votre jeu simple, envisager de prendre un coup d'oeil à
Pygame
, pour une meilleure prise en charge du multimédia, ou peut-être Pyglet, ou même plus haut niveau cadre multimédia appelé Kivy.*(mise à jour): à partir de 2015, il est d'Oreiller avec une fourchette, c'est une goutte en remplacement de l'ancien PIL projet, et qui a repris le bon développement du projet, y compris le soutien pour Python 3.x
OriginalL'auteur jsbueno
La toile widget est la chose à utiliser si vous voulez dessiner quelque chose avec des lignes, des cercles, etc.
OriginalL'auteur Bryan Oakley
Cela dépend beaucoup sur le format de fichier. Tkinter est un PhotoImage classe qui peut être utilisé dans
Labels
assez facilement si votre image est un.gif
. Vous pouvez aussi les ajouter à la toile widgets assez facilement. Sinon, vous pouvez utiliser PIL pour convertir une image en unPhotoImage
.OriginalL'auteur mgilson