statt TAB- mit ENTER-Taste

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
marconisahib
User
Beiträge: 22
Registriert: Montag 25. Juni 2018, 08:34

Da bin ich noch einmal.
Komme nach mehreren Tests noch nicht zurecht:
Ich möchte nach der Texteingabe in Zeile 1 mit ENTER auf CHECK springen und durch weiteren ENTER den Test (CHECK) auslösen.
Und auch alle weiteren "tab-Sprünge" durch ENTER aulösen.
(es gibt später noch weitere Button)

Code: Alles auswählen

from Tkinter import *

def abgleich():
    if e1.get() == "meier":
       x = Label(master, text= " Achtung " , bg="white", fg="red").grid(row=0,column=1, sticky=W)
    else:
       x = Label(master, text= " der naechste " , bg="white", fg="green").grid(row=0,column=1, sticky=W)
    e2.focus_set()

master = Tk()
Label(master, text="First Name").grid(row=1)
Label(master, text="Last Name").grid(row=2)
Button(master, text= "check",command=abgleich).grid(row=1,column=2,sticky=W,pady=4)

e1 = Entry(master)
e2 = Entry(master)

e1.grid(row=1, column=1)
e2.grid(row=2, column=1)

mainloop( )
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Da sind ja immer noch die ganzen Probleme und Fehler aus diesem Thema drin: viewtopic.php?f=1&t=43379

Code: Alles auswählen

#!/usr/bin/env python
# coding: utf-8
from __future__ import absolute_import, division, print_function
from functools import partial
import Tkinter as tk


def abgleich(status_label, name_entry, last_name_entry):
    if name_entry.get() == 'meier':
        status_label.config(text=' Attention ', fg='red')
    else:
        status_label.config(text=' next ', fg='green')
    last_name_entry.focus_set()


def invoke_and_break(button, _event):
    button.invoke()
    return 'break'


def main():
    root = tk.Tk()
    
    status_label = tk.Label(root, bg='white')
    status_label.grid(row=0, column=1, sticky=tk.W)
    
    tk.Label(root, text='First Name').grid(row=1)
    name_entry = tk.Entry(root)
    name_entry.grid(row=1, column=1)
    
    check_button = tk.Button(root, text='check')
    check_button.grid(row=1, column=2, sticky=tk.W, pady=4)

    tk.Label(root, text='Last Name').grid(row=2)
    last_name_entry = tk.Entry(root)
    last_name_entry.grid(row=2, column=1)

    check_button['command'] = partial(
        abgleich, status_label, name_entry, last_name_entry
    )
    
    check_button.bind('<Return>', partial(invoke_and_break, check_button))
    root.bind('<Return>', lambda _: root.event_generate('<Tab>'))
    
    root.mainloop()


if __name__ == '__main__':
    main()
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
marconisahib
User
Beiträge: 22
Registriert: Montag 25. Juni 2018, 08:34

Danke, - so springt die ENTER-Taste prima- aber das muss ich erst genau alles nachvollziehen,verstehen - -und verdauen. Da ist viel Neues.
mni tks+
Antworten