#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.