Afficher image et liste bolx

Messages postés
37
Date d'inscription
samedi 29 octobre 2016
Statut
Membre
Dernière intervention
31 mai 2019
-
Bonjour,
Je fais mes débuts sur python.
J'ai installé python 3.6 64 bits

Je ne parviens pas à positionner sur une même fenêtre une image et une liste box.
Voici une partie de mon code qui vous montrera un peu près ce que je veux faire.
Sur une même fenêtre j'ai deux listes box dans la première j'affiche tous les sous répertoire de mon dossier.
En cliquant sur une des lignes de mon sou répertoire j'affiche dans la deuxième liste box tous les fichiers de ce répertoire qui sont en faite des JPG.
En cliquant sur l'un ou l'autre de ces fichiers JPEG je veux afficher l'image sur la partie droite de ma fenêtre mais là je bloque complètement impossible d'associer l'image à la fenêtre…
j'imagine que ma demande est un peu confuse mais je ne sais pas comment m'exprimer autrement.
En tout cas un grand merci à ceux qui pourront m'aider dans le codage de cet photo ainsi que de son positionnement à droite de la fenêtre.

import tkinter as tk
import os, sys
from PIL import ImageTk
global path2


global value1
global path
from PIL import Image, ImageTk
root = tk.Tk()
# on ajuste la frnetre a la dimention ecran
width = root.winfo_screenwidth()
height = root.winfo_screenheight()
root.geometry("%dx%d" % (width, height))

# w.winfo_screenmmwidth()t.geometry("1200x800")
root.title("change label on listbox selection")
root.resizable(0,0)
root.configure(background='lightgrey')


#Show selected currency for from in label
frmcur_text = tk.StringVar()
frmcur = tk.Label(root, textvariable=frmcur_text, font="Helvetica 10 bold", anchor='w', background='lightgrey').place(x=195,y=50)
#ggggggggggggggggggggggggggggggggggggg
def onselect2(evt):
# Note here that Tkinter passes an event object to onselect()

w = evt.widget
index = int(w.curselection()[0])
value1 = w.get(index)
print ('You selected item %d: "%s"' % (index, value1))

frmcur_text.set(value1)
print("path" + path)
path2 = ( path1+ "/" + (value1))
print("path2 " + path2)

photo.insert("1.jpg")
photo = Image.open("1.jpg")
photo.show()
#photo =GGGGGGGGGGGGGGGGGGGGGGGG

#ggggggggggggggggggggggggggggggggg
def onselect(evt):
# Note here that Tkinter passes an event object to onselect()

w = evt.widget
index = int(w.curselection()[0])
global value
value = w.get(index)
print ('You selected item %d: "%s"' % (index, value))
print (path + (value))

frmcur_text.set(value)
global path1
path1 = (path + (value))
dirs1 = os.listdir( path1 )
for i in dirs1:
listbox2.insert(1, i)

#Create listboxes for xurrency selection
listbox1 = tk.Listbox(root, font="Helvetica 11 bold", height=3, width=50)
listbox2 = tk.Listbox(root, font="Helvetica 11 bold", height=3, width=50)
#photo = tk.Listbox(root, font="Helvetica 11 bold", height=300, width=50)
photo =tk.Image(root,height=3, width=50)
listbox1.place(x=300,y=50)
listbox2.place(x=300,y=200)
photo.place(root,x=800,y=125)
#Pour obtenir le chemin du répertoire courant dans un script python:
path = ( os.path.abspath(os.curdir) ) + ("/DATA/")
print(path)
##path = "D:/AA/"

dirs = os.listdir( path )
for i in dirs:

listbox1.insert(1, i)
# listbox2.insert(1, i)


listbox1.bind('<<ListboxSelect>>', onselect)
cs = listbox1.curselection()
frmcur_text.set(cs)

#kkkkkkkkkkkkkkkkkkkkkkk
listbox2.bind('<<ListboxSelect>>', onselect2)
listbox2.bind('<<ListboxSelect>>', onselect2)
cs = listbox2.curselection()
frmcur_text.set(cs)


PHOTO = Image.open("1.jpg")
#hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
root.mainloop()
Afficher la suite