python tkinter 导入自定义模块后,自定义模块内的函数无法获取主程序的entry.get()吗? Python中如何获取输入框Entry输入的内容并输出

python tkinter \u5982\u4f55\u83b7\u53d6\u6587\u672c\u6846\u4e2d\u7684\u5185\u5bb9\uff1f

1\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做的漂亮界面 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网