Подскажите, как изменить метку с другого класса? Как к ней обратиться для изменения ее свойств?
Код примерно такой (обрезан от всего лишнего):
from tkinter import Tk, Frame, BOTH from tkinter.ttk import Button, Label, Style from tkinter import messagebox from tkinter.filedialog import askopenfilename class Rem(): def open_file(self): self.a = [] self.filename = askopenfilename(initialdir = "D:/Documents",title = "Выберите файл для работы",filetypes = (("Import files","Import.txt"),("All files","*.*"))) with open(self.filename, "r", encoding='utf-8') as f: for line in f: if not line.isspace(): self.a.append(line.replace('\n', '')) f.close() Gui.lbl1.config(text=str(self.filename).replace('/', '\\')) return a class Gui(Frame): def __init__(self, parent): Frame.__init__(self, parent) self.parent = parent self.parent.title("Coiner") self.pack(fill=BOTH, expand=1) self.centerWindow() self.initUI() def initUI(self): btn1 = Button(self.parent, text='', command=Rem().open_file) btn1.place(x=5, y=5, height=32, width=32) self.lbl1 = Label(self.parent, text="Файл не выбран", font=("Arial", 10)) self.lbl1.place(relx=.5, rely=1, anchor="s", height=20, width=800) def centerWindow(self): w = 800 h = 600 sw = self.parent.winfo_screenwidth() sh = self.parent.winfo_screenheight() x = (sw - w) / 2 y = (sh - h) / 2 self.parent.geometry('%dx%d+%d+%d' % (w, h, x, y)) self.parent.resizable(False, False) def main(): root = Tk() Gui(root) root.mainloop() def main(): Gui.main() if __name__ == '__main__': main()
Gui.lbl1.config(text=str(self.filename).replace('/', '\\'))
В данном случае - получить список “а”, но не писать что-то такое:
a = self.open_file()