我想爲用戶提供tkinter.ttk.Notebook對象中tab選項遍歷的多個keybinds。我正在使用下面的代碼:無法在tkinter.ttk.Notebook(Python 3.5.1)中綁定<Control-bracketleft>,<Control-bracketright>
self.notebook = ttk.Notebook(self)
self.notebook.enable_traversal()
self.notebook.bind('<Control-Key-Prior>', self.priorTab)
self.notebook.bind('<Control-Key-Next>', self.nextTab)
self.notebook.bind('<Control-bracketleft>', self.priorTab)
self.notebook.bind('<Control-bracketright>', self.nextTab)
enable_traversal()產生預期的行爲,允許Control-Shift-Tab和Control-Tab導航。該和綁定也產生所需的結果,允許Control-PageUp和Control-PageDown導航。
但是,第三個選項失敗。我期望並允許通過Control- [和Control-]進行導航,但他們什麼都不做。我通過檢查相應的Tk聯機幫助文件確認密鑰是正確的,而且在Python解釋器中鍵碼不會產生錯誤。
在我的理解,tkinter應該不會有任何問題綁定到相同的回調兩個事件。我在某個地方犯了什麼錯誤,還是支架鍵不受支持?謝謝!
發現問題。即使沒有發生異常,回調函數中也有問題。一旦解決了,一切都按預期工作。我感到困惑的原因是Notebook.enable_traversal()方法提供了兩組綁定:Control-Tab和Control-Shift-Tab,以及Control-PageUp和Control-PageDown。第二對綁定在tkinter.ttk中沒有記錄。 – IJKLefty