【问题标题】:python, tkinter, how can i display console result to tkinter textboxpython,tkinter,我如何将控制台结果显示到 tkinter 文本框
【发布时间】:2022-01-10 11:45:41
【问题描述】:

如果我单击菜单栏中的 noticeall,我希望它显示在 mainframe.py 的 textarea 上 我如何在 def noticeall 中编写代码.. plz

ma​​in.py文件代码是

import mainframe
mainframe.show()

ma​​inframe.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 中的局部变量

【问题讨论】:

    标签: python tkinter text


    【解决方案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 传递参数。

    【讨论】:

      猜你喜欢
      • 2021-09-12
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多