Как я могу установить фокус на входе, но на кнопке одновременно, используя tkinter python3? - PullRequest
0 голосов
/ 28 сентября 2019

Я хочу создать окно, которое позволит мне начать писать прямо сейчас, но сразу после окончания, без необходимости нажимать клавишу «Tab» или что-либо еще, просто нажать «Enter», чтобы активировать кнопку.Вот пример кода

from tkinter import *
from tkinter import ttk


class Aplicacion():
    def __init__(self):
        self.raiz = Tk()
        self.raiz.title("Acces")

        self.etiq1 = ttk.Label(self.raiz, text="User:").pack()

        self.ctext1 = ttk.Entry(self.raiz, width=30)
        self.ctext1.pack()
        self.ctext1.focus_set()

#Thanks to the written so far I'm able to start writing 
#in the entry box right away, just after I start the program, 
#but if I press enter the next button is not activated.

        self.boton1 = ttk.Button(self.raiz, text="Accept", command=self.raiz.destroy)

        self.boton1.pack()

        self.raiz.mainloop()

def main():
    mi_app = Aplicacion()
    return 0

if __name__ == '__main__':
    main()

1 Ответ

0 голосов
/ 28 сентября 2019

Как установить фокус на входе, но одновременно на кнопке, используя tkinter python3?

Вы не можете.Фокус по определению может ссылаться только на один виджет.

Я хочу создать окно, которое позволит мне начать писать прямо сейчас, но сразу после окончания, без необходимости нажимать клавишу «Tab» или что-либо еще, просто нажать «Enter», чтобы активировать кнопку.

Вам не нужно фокусироваться в двух местах, чтобы сделать это.Вам просто нужно добавить привязку в ваш виджет ввода, чтобы вызвать кнопку, когда пользователь нажимает клавишу возврата.

self.ctext1 = ttk.Entry(self.raiz, width=30)
self.boton1 = ttk.Button(self.raiz, text="Accept", command=self.raiz.destroy)
self.ctext1.bind("<Return>", lambda event: self.boton1.invoke())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...