Tkinter控制浮点数量输入返回。

2024-10-05 10:36:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在有一些非常简单的代码,我有一些问题。在

root = Tk()
label1 = Label(root, text ="Enter String:")
userInputString = Entry(root)
label1.pack()
userInputString.pack()
submit = Button(root,text = "Submit", command = root.destroy)
submit.pack(side =BOTTOM)
root.mainloop()
print(userInputString)   

当我运行代码时,一切都像我预期的那样运行,除了

^{pr2}$

对于输入的asdf,print将返回类似于0.9355325的值

但它永远不会是相同的值背靠背总是随机的。在

我在Windows7机器上使用Python3.5和EclipseNeon。在

最终的目标是在弹出的框中接受来自用户的字符串,然后能够在以后将该值用作字符串。例如,它可能是需要修改或打开的文件路径。在

条目不是我应该使用的正确的小部件吗?这里的代码有什么固有的错误吗?我是python新手,没有很多很强的编程经验,所以我甚至不确定这是否正确地设置为接收字符串。在

如果有人有任何想法,请提前谢谢。在


Tags: 字符串代码textstringbuttonrootlabelpack
1条回答
网友
1楼 · 发布于 2024-10-05 10:36:04

你的打印声明有两个问题。首先,打印小部件,而不是小部件中的文本。print(widget)打印str(widget),这是小部件的tk路径名。“.”代表根窗口。后面的整数是tkinter指定为小部件名称的数字。在当前的3.6中,它应该是'entry', so you would see ".entry“。在

第二,在销毁小部件后尝试打印小部件文本。之后根目录。销毁,pythontkinter包装器仍然存在,但是它包装的tk小部件不见了。下面的代码适用于3.6,Win10。在

import tkinter as tk
root = tk.Tk()
label = tk.Label(root, text="Enter String:")
entry = tk.Entry(root)
def print_entry(event=None):
    print(entry.get())
entry.bind('<Key-Return>', print_entry)
entry.focus_set()
submit = tk.Button(root, text="Submit", command=print_entry)
label.pack()
entry.pack()
submit.pack()
root.mainloop()

好处1:我将焦点设置在输入框上,这样用户就可以开始输入,而无需在框上使用Tab键或单击它。在

奖励2:我将键绑定到提交功能,这样就可以不用鼠标提交了。注意,该命令需要一个“event”参数,但它必须默认为None才能与按钮一起使用。在

我经常使用的NMT Reference是相当完整和基本正确的。在

相关问题 更多 >

    热门问题