我创建了一个带有文本小部件和按钮的顶级小部件,如何通过单击按钮将文本插入到文本小部件中。
我的代码:
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。有办法做到这一点吗?
所以我找到了问题的解决方案,出于某种原因,network_text.config(state="disabled"(在插入任何文本之前禁用了小部件,删除了禁用状态部分。
尝试打印函数netstat_command
中的netstat_an
变量,如果打印为空,则需要检查commands.netstat.Netstat_an()
。不要忘记command=lambda: netstat_command()
中lambda的括号
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()