簡體   English   中英

Tkinter 文本小部件錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM