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)
После нажатия кнопки button_check результат появится в FrameSelect, где находятся виджеты. Вместо этого я хочу, чтобы результаты появлялись в FrameMain.
Я знаю, что это происходит, потому что я использую self в качестве первого аргумента при вызове метода.
Пробовал self, super(), master, родительский, FrameMain(CTkFrame)
Экземпляр FrameMain находится в main.py, но как мне получить к нему доступ?
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) [/code] [b]frame_main.py[/b] (в каталоге include) [code]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) [/code] После нажатия кнопки button_check результат появится в FrameSelect, где находятся виджеты. Вместо этого я хочу, чтобы результаты появлялись в FrameMain. Я знаю, что это происходит, потому что я использую self в качестве первого аргумента при вызове метода. Пробовал self, super(), master, родительский, FrameMain(CTkFrame) Экземпляр FrameMain находится в main.py, но как мне получить к нему доступ?