python, tkinter, как я могу отобразить результат консоли в текстовом поле tkinter

#python #tkinter #text

Вопрос:

если я нажму » Все » в строке меню, я хочу, чтобы оно отображалось в текстовой области по адресу mainframe.py как я могу написать код в def noticeall.. plz

main.py код файла является

 import mainframe mainframe.show()  

mainframe.py код файла является

 def show ():  frame = tkinter.Tk()  frame.title('test')  frame.geometry('800x600')  frame.resizable(False, False)  sf = ScrolledFrame(frame, width=800, height=600)  sf.pack(side="top", expand=1, fill="both")  sf.bind_arrow_keys(frame)  sf.bind_scroll_wheel(frame)  menu_bar = menubar.make_menubar(frame,)  frame.config(menu=menu_bar)  inner_frame = sf.display_widget(Frame)  entry = Entry(inner_frame, width=750)  entry.pack()  entry.focus_set()  textarea = Text(inner_frame, width=750, height=200)  textarea.pack()  frame.mainloop()  

menubar.py код файла является

 def make_menubar(frame):  menubar = Menu(frame)  file_menu = Menu(menubar, tearoff=0)  file_menu.add_command(label="noticeall",command=noticeall) def noticeall():  notice_list = ncontroller.select_all()  print_list(notice_list)'  

пожалуйста, порекомендуйте код следующей строки print_list.insert(textarea) ??? — я не могу, textarea-это локальная переменная в mainframe.py

Ответ №1:

 def make_menubar(frame, textarea):  menubar = Menu(frame)  file_menu = Menu(menubar, tearoff=0)  file_menu.add_command(label="noticeall", command=lambda: noticeall(textarea))  return menubar   def noticeall(textarea):  notice_list = ncontroller.select_all()  textarea.insert(notice_list)  

На самом деле, лучший способ — это создать класс. Передайте параметры через self.