2016-03-01 77 views
2

我正在使用Tkinter來製作一個小程序,但我遇到了粘貼問題。Python - 更改Tkinter中的粘貼行爲

我希望能夠通過鼠標中鍵單擊文本窗口小部件中的文本而不粘貼任何內容。我曾嘗試類似的東西在它結合:

text.bind('<<Paste>>', lambda x: 'break') 

但這只是禁用鍵盤上的Ctrl-V粘貼,而不是鼠標。這讓我想,也許這是一個X11(我在Debian上)的問題,但即使是這樣,有沒有辦法攔截粘貼事件?我想使它儘可能便攜。

+1

查看'text.tcl',通常在debian的'/ usr/share/tcltk8.6'中查看默認情況下文本控件的綁定。這會告訴你你需要重新綁定的東西。 – msw

+0

參見http://stackoverflow.com/questions/6433369/deleting-and-changing-a-tkinter-event-binding-in-python – msw

+1

謝謝!它看起來像我需要綁定的是'<< PasteSelection >>',而不是'<>'。這會保留Ctrl-V粘貼,但會禁用中間點擊粘貼。你可以把它作爲答案發布,我會很樂意接受:) – TokenToucan

回答

1

文本小部件的默認綁定位於名爲text.tcl的文件中,該文件通常位於Debian上的/usr/share/tcltk8.6中。

通過檢查默認綁定,您可以找到您想要覆蓋的或unbind。正如你在你的評論中提到的那樣,你發現它是<<PasteSelection>>而不是<<Paste>>綁定,它正在做你不想要的東西。