Partage
  • Partager sur Facebook
  • Partager sur Twitter

tkinter explorateur de fichier dans listbox

Sujet résolu
8 avril 2015 à 15:23:37

Bonjour, je suis sous windows7 avec python 3.4.

Je voudrais mettre un explorateur de fichier dans une listbox avec 2 boutons a coté, 1 pour sélectionner 1 fichier et un autre pour sélectionner un dossier.

Pour l'instant y'a rien qui se passe, quand je double clique sur un dossier il ne s'ouvre pas  et je n'ai pas les icones des dossiers/fichiers

Je pense que je m'y prend très mal, il existe peut être un widget pour intégrer un explorateur de fichier ?

from tkinter import * 
import os 


path = "C:\\" 


s = Scrollbar() 
L = Listbox() 

s.pack(side=RIGHT, fill=Y) 
L.pack(side=LEFT, fill=Y) 

s.config(command=L.yview) 
L.config(yscrollcommand=s.set) 

for filename in os.listdir(path): 
	L.insert(END, filename) 

mainloop() 



  • Partager sur Facebook
  • Partager sur Twitter
8 avril 2015 à 18:24:11

Un widget tel que ceux qui servent à l'import d'image sur n'importe quel logiciel  t’irait ??

-
Edité par 33333 8 avril 2015 à 18:24:42

  • Partager sur Facebook
  • Partager sur Twitter
9 avril 2015 à 9:02:28

Oui j'ai penser a cela, mais dans ce cas je vais devoir faire 2 bouton, l'un pour les dossiers et l'autre pour les fichiers ?

Ou bien on peut faire 1 seul boite de dialogue pour fichiers/dossiers ?

Rq: L'adresse des fichiers devrons ensuite s'afficher dans une listbox par contre

-
Edité par zearte 9 avril 2015 à 9:09:47

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
9 avril 2015 à 9:27:08

Un widget tel que ceux qui servent à l'import d'image sur n'importe quel logiciel t’irait ??

La question n'est pas là, sur le principe sa question est facilement résolue...

Pour l'instant y'a rien qui se passe, quand je double clique sur un dossier il ne s'ouvre pas et je n'ai pas les icones des dossiers/fichiers

Oui, c'est normal, il faut que dans ta boucle d'événements, tu fasses en sorte qu'on attende un double clique sur tes items... Pour cela on utilise la méthode bind.

Ensuite il faut savoir (et heureusement) que ce genre de widget prévoit qu'on sélectionne un de ses items... Sa documentation dit tout, la méthode curselection le permet.

  • Partager sur Facebook
  • Partager sur Twitter
9 avril 2015 à 9:32:33

Es t'il possible d'afficher les icones ?

Sinon, je pense que je vais repartir sur la solution yann33, qui est plus simple.

Actuellement j'ai réussie a afficher la boite de dialogue pour sélectionner un fichier, mais sa coince pour la sélection du dossier.

C'est bon sa marche:

from tkinter import *
from tkinter import filedialog


fenetre = Tk()
fenetre.title("Logiciel 1")
fenetre.geometry("600x600")


def GetFiles():
	filename = filedialog.askopenfilename()
	print (filename)

def GetDir():
	dirname = filedialog.askdirectory()
	print (dirname)


bouton_getfiles = Button(fenetre, text="Get Files", command=GetFiles)
bouton_getfiles.pack()
bouton_getdir = Button(fenetre, text="Get Files", command=GetDir)
bouton_getdir.pack()


fenetre.mainloop()



-
Edité par zearte 9 avril 2015 à 9:42:12

  • Partager sur Facebook
  • Partager sur Twitter
25 février 2018 à 16:23:11

Bonjour, je n'arrive pas a exploiter mon chemin de fichier avec la dernière version du programme de ce topic, en sélectionnant mon fichier jpg et cela bloque à la ligne suivante

ImageSource = Image.open(filename,'r')



  • Partager sur Facebook
  • Partager sur Twitter
6 avril 2020 à 22:23:45 - Message modéré pour le motif suivant : Message complètement hors sujet


6 avril 2020 à 22:50:07

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter