0

我创建了一个带有文本小部件和按钮的顶级小部件,如何通过单击按钮将文本插入到文本小部件中。

我的代码:

def Networking():
    top = Toplevel()
    top.title("Networking")
    top.geometry("800x800")

    style = ttk.Style(root)
    style.configure('l.TFrame', background="gray94")

    command_frame = ttk.Frame(top, style="l.TFrame")
    command_frame.grid()
    command_frame.place(x=30, y=269)
    
    network_lbl = Image.open(rf'{current_dir}/img/network.png')
    resize_image = network_lbl.resize((200, 200))
    networklogo = ImageTk.PhotoImage(resize_image)
    network_logo = ttk.Label(top, image=networklogo, style="l.TLabel")
    network_logo.image = networklogo
    network_logo.grid(column=0, row=0, pady=5)
    network_logo.place(x=89, y=40)

    def netstat_command():
        netstat_an = commands.netstat.Netstat_an()
        return network_text.insert("end", netstat_an)

    network_text = scrolledtext.ScrolledText(top, width=69, height=20)
    network_text.config(state="disabled", bg="black", fg="white")
    network_text.place(x=30, y=300)

    netstat_btn = ttk.Button(command_frame, text="netstat -an", command=lambda: netstat_command)
    netstat_btn.grid(column=1, row=0)

    ipconfig_btn = ttk.Button(command_frame, text="ipconfig", command="")
    ipconfig_btn.grid(column=0, row=0)


    top.mainloop()

我没有收到任何错误,但是 network_text.insert() 代码不起作用,我可能正在使用该函数并且 lambda 错误。有什么办法吗?

4

2 回答 2

1

所以我找到了解决我的问题的方法,由于某种原因 network_text.config(state="disabled") 在插入任何文本之前禁用了小部件,删除了禁用状态部分。

于 2022-01-31T05:57:31.657 回答
0

尝试在函数中打印netstat_an变量netstat_command,如果打印为空,则需要检查您的commands.netstat.Netstat_an(). 并且不要忘记 lambda 的括号command=lambda: netstat_command()

def Networking():
    top = Toplevel()
    top.title("Networking")
    top.geometry("800x800")

    style = ttk.Style(root)
    style.configure('l.TFrame', background="gray94")

    command_frame = ttk.Frame(top, style="l.TFrame")
    command_frame.grid()
    command_frame.place(x=30, y=269)

    network_lbl = Image.open(rf'{current_dir}/img/network.png')
    resize_image = network_lbl.resize((200, 200))
    networklogo = ImageTk.PhotoImage(resize_image)
    network_logo = ttk.Label(top, image=networklogo, style="l.TLabel")
    network_logo.image = networklogo
    network_logo.grid(column=0, row=0, pady=5)
    network_logo.place(x=89, y=40)

    def netstat_command():
        netstat_an = commands.netstat.Netstat_an()
        print(netstat_an)
        return network_text.insert("end", netstat_an)

    network_text = scrolledtext.ScrolledText(top, width=69, height=20)
    network_text.config(state="disabled", bg="black", fg="white")
    network_text.place(x=30, y=300)

    netstat_btn = ttk.Button(command_frame, text="netstat -an", command=lambda: netstat_command)
    netstat_btn.grid(column=1, row=0)

    ipconfig_btn = ttk.Button(command_frame, text="ipconfig", command="")
    ipconfig_btn.grid(column=0, row=0)


    top.mainloop()
于 2022-01-31T05:46:15.160 回答