[英]Tkinter Text Widget Error
当我在文本框中输入文本值并单击从此代码生成的 GUI 表单中的生成按钮时,它不会打印所需的输出,而是出现以下错误
Exception in Tkinter callback
Traceback (most recent call last):
File
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 1699, in __call__
return self.func(*args)
File "/Users/Desktop/tk.py", line 28, in <lambda>
b1 = Button(root, text='Generate', command=(lambda e=ents:
fetch(e)))
File "/Users/Desktop/tk.py", line 7, in fetch
text = text[1].get()
TypeError: get() missing 1 required positional argument: 'index1'
from tkinter import *
fields = 'Section1','Section2'
def fetch(entries):
for text in entries:
field = text[0]
text = text[1].get()
print('%s \n%s\n' % ("\n====================================\n" + field + "\n====================================\n", text))
def makeform(root, fields):
entries = []
for field in fields:
row = Frame(root)
lab = Label(row, width=35, text=field, anchor='w')
ent = Text(row, height=10)
row.pack(side=TOP, fill=X, padx=15, pady=15)
lab.pack(side=LEFT)
ent.pack(side=RIGHT, expand=YES, fill=X)
entries.append((field, ent))
return entries
if __name__ == '__main__':
root = Tk()
root.title('Form')
#Text.get()
ents = makeform(root, fields)
root.bind('<Return>', (lambda event, e=ents: fetch(e)))
b1 = Button(root, text='Generate', command=(lambda e=ents: fetch(e)))
b1.pack(side=LEFT, padx=5, pady=5)
b2 = Button(root, text='Quit', command=root.quit)
b2.pack(side=LEFT, padx=5, pady=5)
root.mainloop()
阅读文本 Wiget 文档,问题已解决,我在 get 方法中使用了索引参数
当前的:
text = text[1].get()
调整
text = text[1].get('1.0', 'end')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.