【问题标题】:Why I can't pass a tkinter entry value between two python 3 scripts?为什么我不能在两个 python 3 脚本之间传递 tkinter 条目值?
【发布时间】:2022-06-29 07:35:02
【问题描述】:

我不明白为什么如果我尝试在两个 python 脚本之间传递一个 tkinter 条目的值,我得到的是 '!entry' 而不是值。

第一个脚本:

from tkinter import *
w=Tk()
def send(e):
    import snd
e=Entry(w)
e.pack()
b=Button(w,command=lambda:send(e.get()))
b.pack()
w.mainloop()

第二个脚本:

from __main__ import *
print(e)

谢谢

【问题讨论】:

  • 也许您可以考虑在您的第二个脚本中添加一个函数,而不是依靠import snd 来做正确的事情。在您的第一个脚本的开头导入您的snd 模块,然后从您的send 函数调用包含在snd 中的函数并将e 的值传递给它。
  • 同时从你的第二个脚本中去掉from __main__ import *。你得到.!entry 的原因是,当你从main 导入时,你得到e 的值,在你的第一个脚本的全局范围内,它是一个入口小部件,而不是e 函数内的e。跨度>

标签: python-3.x variables tkinter tkinter-entry


【解决方案1】:

如果这没有帮助,我很抱歉,但您并不需要发送它。 你可以这样做:

# file1.py
from tkinter import *
w=Tk()
e=Entry(w)
e.pack()
w.mainloop()

还有:

# file2.py
from file1 import e
print(e.get())

这似乎工作得很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-04
    • 2017-10-16
    • 2015-07-04
    • 1970-01-01
    • 2021-06-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多