83 lines
2.2 KiB
Python
83 lines
2.2 KiB
Python
|
import os
|
||
|
import tkinter as tk
|
||
|
from tkinter import filedialog
|
||
|
|
||
|
|
||
|
class MainFrame:
|
||
|
|
||
|
def __init__(self, master):
|
||
|
self.master = master
|
||
|
|
||
|
# Variables
|
||
|
self.file_list = [] # Files list
|
||
|
self.import_state = tk.DISABLED # Enable import on correct fp
|
||
|
|
||
|
# Class Frames
|
||
|
FileSelect(master, self.file_list, self.import_state)
|
||
|
LoadFiles(master, self.file_list, self.import_state)
|
||
|
|
||
|
|
||
|
class FileSelect:
|
||
|
|
||
|
def __init__(self, master, files, button_state):
|
||
|
self.files = files
|
||
|
self.button_state = button_state
|
||
|
|
||
|
# Frame
|
||
|
self.frame = tk.LabelFrame(master, text="File Selection")
|
||
|
self.frame.grid(row=0, column=0)
|
||
|
|
||
|
# Select directory button
|
||
|
tk.Button(self.frame, text="Open:", command=self.directory_path).grid(
|
||
|
row=0, column=0
|
||
|
)
|
||
|
|
||
|
# Tkinter Elements...
|
||
|
|
||
|
# Directory Selection
|
||
|
def directory_path(self):
|
||
|
|
||
|
# Select filepath
|
||
|
directory = filedialog.askdirectory(initialdir="/", title="Select a directory")
|
||
|
os.chdir(directory)
|
||
|
|
||
|
# Populate list of files
|
||
|
for tb in os.listdir(directory):
|
||
|
self.files.append(tb)
|
||
|
|
||
|
# Update GUI, activate button in different class if condition met
|
||
|
if len(os.listdir(directory)) == 0:
|
||
|
# Update GUI Labels...
|
||
|
self.button_state = tk.DISABLED
|
||
|
print(self.files, self.button_state)
|
||
|
elif len(self.files) == len(os.listdir(directory)):
|
||
|
# Update GUI Labels...
|
||
|
self.button_state = tk.NORMAL
|
||
|
print(self.files, self.button_state)
|
||
|
|
||
|
|
||
|
class LoadFiles:
|
||
|
def __init__(self, master, files, button_state):
|
||
|
self.files = files
|
||
|
self.button_state = button_state
|
||
|
|
||
|
# Frame
|
||
|
self.frame = tk.LabelFrame(master, text="File loading")
|
||
|
self.frame.grid(row=1, column=0)
|
||
|
# Load button
|
||
|
self.import_files_button = tk.Button(
|
||
|
self.frame, text="Import TB", command=self.print_files
|
||
|
)
|
||
|
self.import_files_button.grid(row=0, column=0, sticky="EW")
|
||
|
|
||
|
# Tkinter Elements...
|
||
|
|
||
|
def print_files(self):
|
||
|
print(self.files, self.button_state)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
root = tk.Tk()
|
||
|
MainFrame(root)
|
||
|
root.mainloop()
|