main.py
Код: Выделить всё
from customtkinter import *
import tkinter as tk
from tkinter import ttk
from include.frame_select import FrameSelect
from include.frame_main import FrameMain
window = CTk()
window.geometry("600x800+100+100")
window.resizable(1,1)
frame_select = FrameSelect(window)
frame_select.grid(row = 0, column = 0, sticky = N + W)
frame_main = FrameMain(window)
frame_main.grid(row = 0, column = 1, sticky = N + W)
window.mainloop()
Код: Выделить всё
import tkinter as tk
from tkinter import ttk
from customtkinter import *
from include.frame_main import FrameMain
class FrameSelect(CTkFrame):
def __init__(self, master):
super().__init__(master)
self.configure(width=200)
id_label = CTkLabel(self, text = "Source file(s)", font = ("Arial",18,"bold"))
id_label.grid(row = 0, column = 0)
button_select = CTkButton(self, text="Select", command=self.select_file).grid(row = 1, column = 0)
button_check = CTkButton(self, text="Check", command=lambda: FrameMain.write_info_on_screen(self, file_path)).grid(row = 2, column = 0)
def select_file(self):
list_of_files = []
global file_path
file_path = filedialog.askopenfilenames(
title="Select a File",
initialdir=".",
filetypes=[("All files", "*.*")])
if file_path:
for i, file in enumerate(file_path):
list_of_files.append(file)
print(list_of_files)
Код: Выделить всё
import tkinter as tk
from tkinter import ttk
from customtkinter import *
class FrameMain(CTkFrame):
def __init__(self, master):
super().__init__(master)
self.configure(width=300)
def count_number_of_files(self, list_of_files):
for i,file_name in enumerate(list_of_files):
label = tk.Label(self, text=file_name).grid(row=1,column=i, padx=10, pady=10)
def write_info_on_screen(self, file_path):
FrameMain.count_number_of_files(self, file_path)
Я знаю, что это происходит, потому что я использую self в качестве первого аргумента при вызове метода.
Пробовал self, super(), master, родительский, FrameMain(CTkFrame)
Экземпляр FrameMain находится в main.py, но как мне получить к нему доступ?