10 鱼币
本帖最后由 kerln888 于 2022-7-6 08:12 编辑
代码如下:
# Entry添加剪切、复制、粘贴功能
def cut(editor, event=None):
editor.event_generate("<<Cut>>")
def copy(editor, event=None):
editor.event_generate("<<Copy>>")
def paste(editor, event=None):
editor.event_generate('<<Paste>>')
def rightKey(event, editor):
menubar.delete(0, END)
menubar.add_command(label='剪切', command=lambda: cut(editor))
menubar.add_command(label='复制', command=lambda: copy(editor))
menubar.add_command(label='粘贴', command=lambda: paste(editor))
menubar.post(event.x_root, event.y_root)
menubar = tk.Menu(checkWindow, tearoff=False)
i = 0
listEntry = []
for ticket in finishAll.select_db_data:
# 第0列开始
listEntry.append([])
for j in range(len(ticket)):
finishEntryData = tk.Entry(finishFrameShow, width=28, fg='blue', justify='center')
listEntry[i].append(finishEntryData)
# 输入框第i行第j列插入数据
finishEntryData.grid(row=i, column=j)
# 从上次存放的最后一个位置开始
finishEntryData.insert(END, str(ticket[j]))
i = i + 1
for y in range(i):
listEntry[y][0].bind("<Button-3>", lambda x: rightKey(x, listEntry[y][0]))
使用for循环,只有最后一个entry组件能正常复制里面的内容,其他的entry选中内容再点击右键复制,并不能复制该entry组件的内容。比如i=3
只有listEntry[2][0]正常,listEntry[0][0],listEntry[1][0]都不正常,而且在listEntry[0][0],listEntry[1][0]点击粘贴,粘贴的内容出现在listEntry[0][2],
而不是listEntry[0][0],listEntry[1][0]本身。
但是自己手动捆绑:
listEntry[0][0].bind("<Button-3>", lambda x: rightKey(x, listEntry[1][0]))
listEntry[1][0].bind("<Button-3>", lambda x: rightKey(x, listEntry[2][0]))
listEntry[2][0].bind("<Button-3>", lambda x: rightKey(x, listEntry[3][0]))
这样的话,所有的entry组件都能正常的复制内容。请各位大神指点迷津,谢谢了!
我来回答