Я начинающий Python, работающий на MacOS.
Я делаю программу с графическим интерфейсом синтаксического анализатора текста в tkinter, где вы набираете команду в виджете Entry
и нажимаете на виджет Button
, который запускает функцию parse()
, ect, вывод результатов в виджет Text
, text- стиль приключений.
> Обойти кнопку
Я не могу позволить тебе сделать это, Дейв.
Я пытаюсь найти способ избавиться от необходимости перетаскивать мышь на Button
каждый раз, когда пользователь вводит команду, но это оказалось сложнее, чем я думал.
Я предполагаю, что правильный код выглядит как self.bind('<Return>', self.parse())
? Но я даже не знаю, где это поставить. root
, __init__
, parse()
и create_widgets()
этого не хотят.
Для ясности, единственная причина, по которой кто-то должен нажать Enter в проге, - это запуск parse()
, поэтому его не нужно специально привязывать к виджету Entry
. Везде, где это работает, хорошо.
В ответ на 7студ, основной формат:
from tkinter import *
import tkinter.font, random, re
class Application(Frame):
def __init__(self, master):
Frame.__init__(self, master, ...)
self.grid()
self.create_widgets()
self.start()
def parse(self):
...
def create_widgets(self):
...
self.submit = Button(self, text= "Submit Command.", command= self.parse, ...)
self.submit.grid(...)
root = Tk()
root.bind('<Return>', self.parse)
app = Application(root)
root.mainloop()