CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PYTHON] Tkinter problème "AttributeError: Event instance has no attribute '__getitem__'"

estelle281997
estelle281997
Niveau 1
21 avril 2017 à 01:32:12

Bonsoir,
dans le cadre d'un projet informatique je dois créer un logiciel de traitement d'images.
J'ai donc créé plusieurs fonctions qui traitent une liste de listes représentant les pixels de mon image (pour appliquer par exemple une symétrie à l'image).
J'utilise ensuite .bind pour associer mes fonctions à des boutons

mon script ressemble à ça :

import Tkinter as TK
from PIL import Image as img
from PIL import ImageTk as imTK
import numpy as np

uneImage=img.open('CARRE NB.jpg')
uneImage=uneImage.convert('L') #conversion en N&B
tabImage=np.array(uneImage)
lImage=tabImage.tolist()

tabImage2=np.asarray(lImage)
lImage2=img.fromarray(tabImage2)
lImage2=lImage2.convert('L')
lImage2.save('test2.jpg')

!!!!! FONCTIONS !!!!!
def symetrieh(lImage):
L=lImage
return L[::-1]

def ImSymH(lImage):
L=symetrieh(lImage)
tabImage=np.array(L)
Im=img.fromarray(tabImage)
lImage2=imTK.PhotoImage(Im)
zone_dess.create_image(200,450,image=lImage2)

INTERFACE GRAPHIQUE
zone_dess= TK . Canvas (fen , height=600 , width=1000 , bg="red", cursor="tcross")
zone_dess.pack(side="right")
Image=imTK.PhotoImage(uneImage)
zone_dess.create_image(200,200,image=Image)

CREATION ET PARAMETRES DE LA ZONE DE COMMANDES
zone_commandes = TK . Frame (fen)
zone_commandes.pack(side="left")

bout_1 = TK . Button ( zone_commandes , text = "Symetrie H", cursor="target")
bout_1.bind("<Button-1>", ImSymH)
bout_1.pack(side="bottom")

Et quand je clique sur le fameux bouton dans l'interface graphique j'obtiens un message d'erreur sur la console python :

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1536, in __call__
return self.func(*args)
File "F:/PROJET/*******.py", line 37, in ImSymH
L=symetrieh(lImage)
File "F:/PROJET/*******.py", line 34, in symetrieh
return L[::-1]
AttributeError: Event instance has no attribute '__getitem__'

Si quelqu'un pouvait m'expliquer ce que signifient ces messages et comment résoudre le problème svp
Merci d'avance :)

-[Franckyi]-
-[Franckyi]-
Niveau 10
21 avril 2017 à 11:03:27

Ta variable L et donc ta variable lImage ne sont probablement pas des listes, donc ton slicing ligne 34 ne fonctionne pas.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment