我正在尝试向这个程序添加一个带有“全选”的菜单。我想让它选择所有的文本在回答文本框,这是“空白2”。我可以得到菜单和下拉菜单工作,但当我点击“全选”它给我一个错误。 这是密码
#!/usr/bin/env python3
from tkinter import *
#function for select all menu item
def select_all(event=None):
blank2.tag_add('sel', '1.0', 'end')
return "break"
def getDaText():
src = blank.get()
if '_' in src:
dst = src.replace("_", " ")
else:
dst = src.replace(" ", "_")
blank2.insert(0, dst)
def clear_answer():
blank.delete('0', END)
blank2.delete('0', END)
main = Tk()
# Creating Menubar
menubar = Menu(main)
# Adding Edit Menu and commands
edit = Menu(menubar, tearoff = 0)
menubar.add_cascade(label ='Edit', menu = edit)
#edit.add_command(label ='Cut', command = None)
#edit.add_command(label ='Copy', command = None)
#edit.add_command(label ='Paste', command = None)
edit.add_command(label ='Select All', command=select_all)
Label(main, text=" add or remove underscore ").grid(row=0, columnspan=3, sticky=W, pady=1)
blank = Entry(main)
blank2 = Entry(main)
blank.grid(row=1, column=0, columnspan=2, sticky=W)
blank2.grid(row=2, column=0, columnspan=2, sticky=W)
Button(main, text='Show answer', command=getDaText).grid(row=3, column=0, sticky=W, pady=1)
Button(main, text='Clear', command=clear_answer).grid(row=3, column=1, sticky=W, pady=1)
# display Menu
main.config(menu = menubar)
mainloop()
这就是错误
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.5/tkinter/__init__.py", line 1553, in __call__
return self.func(*args)
File "/home/mthomas/python_progs/add_or_remove_underscore/add_or_remove_underscore-tk-with-label.py", line 5, in select_all
blank2.tag_add('sel', '1.0', 'end')
AttributeError: 'Entry' object has no attribute 'tag_add'
在
Entry
-小部件上调用方法tag_add
。此小部件没有tag_add
方法。可能您希望使用Text
-小部件参考文献:
条目小部件:https://www.tutorialspoint.com/python/tk_entry.htm
文本小部件:https://www.tutorialspoint.com/python/tk_text.htm
编辑
我用
Entry
-小部件寻找了一个解决方案,发现了以下内容:https://effbot.org/tkinterbook/entry.htm#Tkinter.Entry.selection_range-method
Setting focus to specific TKinter entry widget
相关问题 更多 >
编程相关推荐