Я пытаюсь создать текстовый редактор с python 3 и tkinter.Текстовый редактор работает отлично, за исключением случаев, когда я пытаюсь использовать свои сочетания клавиш.Всякий раз, когда я использую любой из ярлыков, я получаю сообщение об ошибке:
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)
TypeError: newFile() takes 0 positional arguments but 1 was given
newFile()
можно заменить на copySelected()
, selectAll()
или любой командой, которую я пытаюсь использовать.Это происходит только тогда, когда я пытаюсь использовать привязки клавиш.Это работает просто отлично из строки меню.Страннее всего то, что когда я режу, копирую или вставляю, я получаю сообщение об ошибке, которое они на самом деле работают в приложении.Вот код привязки ключа:
textField.bind("<Command-n>", newFile)
textField.bind("<Command-N>", newFile)
textField.bind("<Command-o>", openFile)
textField.bind("<Command-O>", openFile)
textField.bind("<Command-s>", saveFile)
textField.bind("<Command-S>", saveFile)
textField.bind("<Command-n>", newFile)
textField.bind("<Command-n>", newFile)
textField.bind("<Command-z>", undo)
textField.bind("<Command-Z>", undo)
textField.bind("<Command-Shift-z>", redo)
textField.bind("<Command-Shift-Z>", redo)
textField.bind("<Command-x>", cutSelected)
textField.bind("<Command-X>", cutSelected)
textField.bind("<Command-c>", copySelected)
textField.bind("<Command-C>", copySelected)
textField.bind("<Command-v>", paste)
textField.bind("<Command-V>", paste)
textField.bind("<Command-a>", selectAll)
textField.bind("<Command-A>", selectAll)
В настоящее время я тестирую код в Mac OS, но я уже сделал код специально для него, чтобы он работал и в Windows и Linux.Код Windows и Linux точно такой же, за исключением того факта, что Command заменен на Control.Ошибка возникает на всех трех платформах.
Любая помощь с благодарностью.Спасибо!