<p>您的代码中几乎没有问题:</p>
<ul>
<li>将字符串赋值给<code>textvariable</code>,应改为使用<code>StringVar</code></li>
<li><code>command=enter(...)</code>将立即执行<code>enter(...)</code>,然后将<code>None</code>分配给<code>command</code>选项,应改为使用<code>lambda</code></li>
<li>更新<code>enter()</code>内的字符串不会自动更新标签和按钮,应改为使用<code>StirngVar</code>上的<code>.set()</code></li>
</ul>
<p>以下是修改代码:</p>
<pre class="lang-py prettyprint-override"><code>def enter(inputtedinfo, randvar, EnterMessage):
# used .set() to update StringVar
randvar.set(inputtedinfo.get())
EnterMessage.set("Submitted!")
def main():
something = tkinter.Tk()
something.title("My First Tkinter Window")
something.geometry("600x400")
randvar = tkinter.StringVar() # changed to StringVar()
EnterMessage = tkinter.StringVar(value="Enter") # changed to StringVar()
inputtedinfo = tkinter.StringVar()
userLabel = tkinter.Label(something, textvariable=randvar) # used textvariable instead of text option
userEntry = tkinter.Entry(something, textvariable=inputtedinfo)
userButton = tkinter.Button(something, textvariable=EnterMessage, command=lambda: enter(inputtedinfo, randvar, EnterMessage))
userEntry.grid(row=0,column=0)
userLabel.grid(row=0,column=1)
userButton.grid(row=0,column=2)
something.mainloop()
</code></pre>