简体   繁体   中英

python, tkinter, how can i display console result to tkinter textbox

if i click noticeall in menubar, i wanna it to be displayed on textarea at mainframe.py how can i write code in def noticeall.. plz

main.py file code is

import mainframe
mainframe.show()

mainframe.py file code is

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 file code is

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)'

plz recommend next line code print_list.insert(textarea) ??? - i cant, textarea is local variable in mainframe.py

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)

In fact, the best way is to create a class. Pass parameters through self.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM