python tkinter 导入自定义模块后,自定义模块内的函数无法获取主程序的entry.get()吗? Python中如何获取输入框Entry输入的内容并输出
python tkinter \u5982\u4f55\u83b7\u53d6\u6587\u672c\u6846\u4e2d\u7684\u5185\u5bb9\uff1f1\u3001\u9996\u5148\u6253\u5f00python\uff0c\u8f93\u5165\uff1a
\uff03coding\uff1autf\uff0d8
importurllib\uff0curllib2
importTkinter\uff03\u5bfc\u5165TKinter\u6a21\u5757
2\u3001\u7136\u540e\u8f93\u5165\uff1a
ytm\uff1dTkinter\uff0eTk\uff08\uff09\uff03\u521b\u5efaTk\u5bf9\u8c61
ytm\uff0etitle\uff08\uff02login\uff02\uff09\uff03\u8bbe\u7f6e\u7a97\u53e3\u6807\u9898
ytm\uff0egeometry\uff08\uff02300x300\uff02\uff09\uff03\u8bbe\u7f6e\u7a97\u53e3\u5c3a\u5bf8
3\u3001\u7136\u540e\u8f93\u5165\uff1a
l1\uff1dTkinter\uff0eLabel\uff08ytm\uff0ctext\uff1d\uff02\u7528\u6237\u540d\uff02\uff09\uff03\u6807\u7b7e
l1\uff0epack\uff08\uff09\uff03\u6307\u5b9a\u5305\u7ba1\u7406\u5668\u653e\u7f6e\u7ec4\u4ef6
user\uff3ftext\uff1dTkinter\uff0eEntry\uff08\uff09\uff03\u521b\u5efa\u6587\u672c\u6846
4\u3001\u7136\u540e\u8f93\u5165\uff1a
user\uff3ftext\uff0epack\uff08\uff09
defgetuser\uff08\uff09\uff1a
user\uff1duser\uff3ftext\uff0eget\uff08\uff09\uff03\u83b7\u53d6\u6587\u672c\u6846\u5185\u5bb9
printuserTkinter\uff0eButton\uff08ytm\uff0ctext\uff1d\uff02\u767b\u5f55\uff02\uff0ccommand\uff1dgetuser\uff09\uff0epack\uff08\uff09\uff03command\u7ed1\u5b9a\u83b7\u53d6\u6587\u672c\u6846\u5185\u5bb9\u65b9\u6cd5
ytm\uff0emainloop\uff08\uff09\uff03\u8fdb\u5165\u4e3b\u5faa\u73af\uff0c\u5c31\u5b8c\u6210\u4e86\u3002
\u53ef\u4ee5\u4f7f\u7528StringVar()\u5bf9\u8c61\u6765\u5b8c\u6210\uff0c\u628aEntry\u7684textvariable\u5c5e\u6027\u8bbe\u7f6e\u4e3aStringVar()\uff0c\u518d\u901a\u8fc7StringVar()\u7684get()\u548cset()\u51fd\u6570\u53ef\u4ee5\u8bfb\u53d6\u548c\u8f93\u51fa\u76f8\u5e94\u5185\u5bb9\uff0c\u4ee5\u4e0b\u4e3a\u6d4b\u8bd5\u4ee3\u7801\uff08python3.x\uff09\uff1a
from tkinter import *def submit(): print(u.get()) p.set(u.get())root = Tk()root.title("\u6d4b\u8bd5")frame = Frame(root)frame.pack(padx=8, pady=8, ipadx=4)lab1 = Label(frame, text="\u83b7\u53d6:")lab1.grid(row=0, column=0, padx=5, pady=5, sticky=W)
#\u7ed1\u5b9a\u5bf9\u8c61\u5230Entry
u = StringVar()ent1 = Entry(frame, textvariable=u)ent1.grid(row=0, column=1, sticky='ew', columnspan=2)lab2 = Label(frame, text="\u663e\u793a:")lab2.grid(row=1, column=0, padx=5, pady=5, sticky=W)p = StringVar()ent2 = Entry(frame, textvariable=p)ent2.grid(row=1, column=1, sticky='ew', columnspan=2)button = Button(frame, text="\u767b\u5f55", command=submit, default='active')button.grid(row=2, column=1)lab3 = Label(frame, text="")lab3.grid(row=2, column=0, sticky=W)button2 = Button(frame, text="\u9000\u51fa", command=quit)button2.grid(row=2, column=2, padx=5, pady=5)
#\u4ee5\u4e0b\u4ee3\u7801\u5c45\u4e2d\u663e\u793a\u7a97\u53e3
root.update_idletasks()x = (root.winfo_screenwidth() - root.winfo_reqwidth()) / 2y = (root.winfo_screenheight() - root.winfo_reqheight()) / 2root.geometry("+%d+%d" % (x, y))root.mainloop()
\u6548\u679c\u5982\u4e0b\uff1a
button1=tkinter.Button(win,text='打印',command=lambda : pri1(entry=entry))#调用
my_test
def pri1(entry):
print(entry.get())
print('jj')
entry有个textvariable属性,可以通过他来获取和修改entry内容
扩展阅读:python tkinter doc ... python tkinter canvas ... python tkinter frame ... python tkinter安装 ... python for beginners ... python tkinter geometry ... python download ... python turtle graphics ... tkinter做的漂亮界面 ...