Dans tkinter, j'ai créé un écran pour spécifier les pièces jointes et les dossiers. Il est utile de pouvoir spécifier des fichiers et des dossiers avec l'interface graphique lors de la création de divers outils.
tkinter est un module standard qui est inclus par défaut lorsque Python est installé. Vous pouvez créer un écran GUI avec un code très simple. C'est un module pratique pour créer personnellement des outils d'interface graphique.
Les sites suivants sont faciles à comprendre pour une utilisation de base. Programmation GUI avec Tkinter
La fonction de référence à un fichier ou un dossier avec tkinter peut être implémentée à l'aide de filesialog. La façon de l'appeler dans le code est la suivante.
from tkinter import filedialog
Cette fois, j'ai implémenté deux fonctions en utilisant les éléments suivants de fileialog. 1、askdirectory C'est une fonction pour spécifier un répertoire. Cette fonction ouvre l'écran de l'image ci-dessous et vous pouvez spécifier le chemin du dossier. 2、askopenfilename C'est une fonction pour spécifier la feuille. Cette fonction ouvre l'écran de l'image ci-dessous, et vous pouvez spécifier le chemin du fichier.
Cette fois, j'ai créé l'écran GUI suivant. Si vous spécifiez le chemin du dossier et le chemin du fichier et appuyez sur le bouton d'exécution, le chemin spécifié par la fonction de boîte de message sera renvoyé. ** Image du haut de l'écran ** ** Résultat de l'exécution (boîte de message) ** Le code est ci-dessous.
tkinter_sample.py
import os,sys
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
from tkinter import filedialog
#Fonction de spécification de dossier
def dirdialog_clicked():
iDir = os.path.abspath(os.path.dirname(__file__))
iDirPath = filedialog.askdirectory(initialdir = iDir)
entry1.set(iDirPath)
#Fonction spécifiée par fichier
def filedialog_clicked():
fTyp = [("", "*")]
iFile = os.path.abspath(os.path.dirname(__file__))
iFilePath = filedialog.askopenfilename(filetype = fTyp, initialdir = iFile)
entry2.set(iFilePath)
#Fonction d'exécution lorsque le bouton d'exécution est enfoncé
def conductMain():
text = ""
dirPath = entry1.get()
filePath = entry2.get()
if dirPath:
text += "Chemin du dossier:" + dirPath + "\n"
if filePath:
text += "Chemin du fichier:" + filePath
if text:
messagebox.showinfo("info", text)
else:
messagebox.showerror("error", "Aucun chemin n'est spécifié.")
if __name__ == "__main__":
#Créer une racine
root = Tk()
root.title("échantillon")
#Création de Frame1
frame1 = ttk.Frame(root, padding=10)
frame1.grid(row=0, column=1, sticky=E)
#Créer une étiquette "référence de dossier"
IDirLabel = ttk.Label(frame1, text="Se référer au dossier >>", padding=(5, 2))
IDirLabel.pack(side=LEFT)
#Création d'une entrée "Rechercher un dossier"
entry1 = StringVar()
IDirEntry = ttk.Entry(frame1, textvariable=entry1, width=30)
IDirEntry.pack(side=LEFT)
#Créer le bouton "Parcourir le dossier"
IDirButton = ttk.Button(frame1, text="référence", command=dirdialog_clicked)
IDirButton.pack(side=LEFT)
#Création de Frame2
frame2 = ttk.Frame(root, padding=10)
frame2.grid(row=2, column=1, sticky=E)
#Créer une étiquette "référence de fichier"
IFileLabel = ttk.Label(frame2, text="Référence du dossier >>", padding=(5, 2))
IFileLabel.pack(side=LEFT)
#Créer une entrée "référence de fichier"
entry2 = StringVar()
IFileEntry = ttk.Entry(frame2, textvariable=entry2, width=30)
IFileEntry.pack(side=LEFT)
#Créer le bouton "Parcourir le fichier"
IFileButton = ttk.Button(frame2, text="référence", command=filedialog_clicked)
IFileButton.pack(side=LEFT)
#Création de Frame3
frame3 = ttk.Frame(root, padding=10)
frame3.grid(row=5,column=1,sticky=W)
#Installation du bouton d'exécution
button1 = ttk.Button(frame3, text="Courir", command=conductMain)
button1.pack(fill = "x", padx=30, side = "left")
#Installation du bouton d'annulation
button2 = ttk.Button(frame3, text=("Fermer"), command=quit)
button2.pack(fill = "x", padx=30, side = "left")
root.mainloop()
Nous avons introduit la fonction pour spécifier le dossier et le chemin du fichier par la fonction de dialogue de fichier de tkinter. Si vous connectez un module de traitement à ce module, vous pouvez traiter n'importe quel dossier ou fichier.
Recommended Posts