【发布时间】:2021-12-30 15:00:20
【问题描述】:
from tkinter import *
from PIL import Image, ImageTk
import datetime
import os
root = Tk()
root.title("To-do List")
root.geometry("400x600")
root.resizable(width=False, height=False)
# Balance
global be
bet = settings_main_canvas.create_text(110, 165, text="Balance: ", font="Helvetica 14") # Balance Entry Text
be = Entry(root, width=20, font="Helvetica 10", borderwidth=2, bg="#f0f0f0") # Balance Entry
be.insert(0, "Amount in USD")
settings_main_canvas.create_window(170, 165, window=be, anchor=W)
# Text
global acc_name
global balance
global progress_bar_tasks
acc_name = sidebar_canvas.create_text(65, 18, text=ane.get(), font="TimesNewRoman 10 bold", anchor=NW)
balance = sidebar_canvas.create_text(65, 35, text=be.get() + "$", font="TimesNewRoman 8", anchor=NW)
progress_bar_tasks = sidebar_canvas.create_text(180, 30, text="{} / {} Complete".format(len(inbox_finished_tasks), len(inbox_tasks_num)), font="TimesNewRoman 9", anchor=NW)
root.mainloop()
我不知道为什么,但是当我打印 be.get() 时,它总是返回我插入的值,即使我更改了条目中的文本
【问题讨论】:
-
请提供完整的minimal reproducible example。
-
您在创建条目小部件大约一毫秒后调用
.get()。 -
我们今天早些时候几乎有同样的问题。您必须了解事件驱动编程。当您调用这些“创建”函数时,不会绘制任何内容。所做的只是发送请求创建控件的消息。这些消息将全部堆积起来,直到致电
root.mainloop。只有在那个时候才会发送消息,并绘制您的控件。在用户告诉你它已经准备好之前,你不能阅读用户的输入,通常是通过单击一个按钮。您添加一个回调来处理点击事件并获取信息。
标签: python tkinter tkinter-entry