使用.get()但是返回的是空值
代码如下:
def zc1():
print(ac1)
zcck.destroy()
zcck = tk.Tk()
zcck.title('注册窗口')
zcck.geometry('400x200')
zh = tk.Label(zcck,text='账号:')
zh.pack(side='left', pady=5)
zh1 = tk.Text(zcck,width=15,height=1)
zh1.pack(side='left', pady=5)
ac1 = zh1.get('1.0',END)
但是在测试的时候会发现打印出来的是空值,但是我不太明白哪里出了问题。
因为你在 ac1 的赋值语句 ac1 = zh1.get('1.0', END) 在窗口初始化时就执行了,此时 zh1 对象是一个空的文本框。
你应该在需要获取值的时候调用 .get() 方法。在你的代码中,你在 zc1 函数中尝试打印 ac1,但是在函数内部并没有更新 ac1 的值。
所以你应该将
def zc1():
ac1 = zh1.get('1.0', end)
print(ac1)
zcck.destroy()
```
【以下回答由 GPT 生成】
问题分析: 在代码中调用zh1.get('1.0', 'end')
获取zh1
文本框中的值是在文本框创建时就调用的,此时文本框还是空的,所以返回的是空值。
解决方案: 可以在点击按钮或者其他操作触发事件时再调用zh1.get('1.0', 'end')
获取输入的值。
import tkinter as tk
def zc1():
ac1 = zh1.get('1.0', 'end')
print(ac1)
zcck.destroy()
zcck = tk.Tk()
zcck.title('注册窗口')
zcck.geometry('400x200')
zh = tk.Label(zcck, text='账号:')
zh.pack(side='left', pady=5)
zh1 = tk.Text(zcck, width=15, height=1)
zh1.pack(side='left', pady=5)
button = tk.Button(zcck, text='提交', command=zc1)
button.pack(side='left', pady=5)
zcck.mainloop()
在上述代码中,添加了一个按钮,点击按钮时调用zc1()
函数,内部再获取文本框中的值,这样就可以在点击按钮时获取输入的值。