Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在另一个条目中动态打印条目的值_Python_Tkinter - Fatal编程技术网

Python 在另一个条目中动态打印条目的值

Python 在另一个条目中动态打印条目的值,python,tkinter,Python,Tkinter,我的代码: import tkinter as tk disp = tk.Tk() hlabel=tk.Label(text="host") hlabel.grid(column=0,row=0) host_entry = tk.Entry(disp) host_entry.grid(row=0,column=1) plabel=tk.Label(text="port") plabel.grid(column=0,row=1) port_entry = tk.Entry(disp) por

我的代码:

import tkinter as tk
disp = tk.Tk()
hlabel=tk.Label(text="host")
hlabel.grid(column=0,row=0)

host_entry = tk.Entry(disp)
host_entry.grid(row=0,column=1)

plabel=tk.Label(text="port")
plabel.grid(column=0,row=1)

port_entry = tk.Entry(disp)
port_entry.grid(row=1,column=1)

ulabel=tk.Label(text="Url")
ulabel.grid(column=0,row=3)
url_entry=tk.Entry(disp)
url_entry.grid(row=3,column=1)
url_entry.insert(0,'http://{0}:{1}'.format(host_entry.get(),port_entry.get()))
url_entry.config(state='disabled')
disp.mainloop()
我仔细看了这本书,但不明白。
'host'
'port'
应在
'url'
条目中显示为 。 文本应在
url
中动态显示

感谢您的帮助。

最简单的解决方案是对每个条目使用
textvariable
,对每个变量进行跟踪,然后在跟踪触发时更新第三个条目

首先,定义一个函数来更新第三个条目。跟踪函数将调用它,它会自动附加一些我们不使用的参数:

def update_url(*args):
    host = host_var.get()
    port = port_var.get()
    url = "http://{0}:{1}".format(host, port)
    url_var.set(url)
接下来,创建变量:

host_var = tk.StringVar()
port_var = tk.StringVar()
url_var  = tk.StringVar()
接下来,在主机和端口上添加跟踪:

host_var.trace("w", update_url)
port_var.trace("w", update_url)
最后,将变量与条目相关联:

host_entry = tk.Entry(..., textvariable=host_var)
port_entry = tk.Entry(..., textvariable=port_var)
url_entry=tk.Entry(..., textvariable=url_var)
以下是一个完整的工作示例:

import tkinter as tk

def update_url(*args):
    host = host_var.get()
    port = port_var.get()
    url = "http://{0}:{1}".format(host, port)
    url_var.set(url)

disp = tk.Tk()

host_var = tk.StringVar()
port_var = tk.StringVar()
url_var  = tk.StringVar()

host_var.trace("w", update_url)
port_var.trace("w", update_url)

hlabel=tk.Label(text="host")
plabel=tk.Label(text="port")
ulabel=tk.Label(text="Url")
host_entry = tk.Entry(disp, textvariable=host_var)
port_entry = tk.Entry(disp, textvariable=port_var)
url_entry=tk.Entry(disp, textvariable=url_var)
url_entry.config(state='disabled')

hlabel.grid(column=0,row=0)
host_entry.grid(row=0,column=1)
plabel.grid(column=0,row=1)
port_entry.grid(row=1,column=1)
ulabel.grid(column=0,row=3)
url_entry.grid(row=3,column=1)

disp.mainloop()

你是在问如何使哨兵包含键入的内容吗?
command=do\u something()
必须是
command=do\u something
@BryanOakley正确的,但代码只是我编辑问题的一个示例。如果给我们的代码与问题无关,我们将无法回答问题。@BryanOakley我已更新了我的问题,请过目。谢谢,我已经查看了跟踪函数,但仍然无法理解。