Я хочу нажать на запись tkinter, чтобы связать даже, чтобы вернуть три значения разницы к записи - PullRequest
0 голосов
/ 08 апреля 2020

Я хочу щелкнуть по записи tkinter, чтобы изменить ее значение на три значения при каждом щелчке, Present, Leave, Absent, означает, что функция события будет возвращать значения разности каждый раз, при первом щелчке, Present, следующем щелчке Absent, следующем щелчке Оставьте, а затем верните подарок

Я буду благодарен за вашу поддержку :))

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Вы можете использовать cycle() из модуля itertools и функцию next(), чтобы переключать три значения и связывать событие <Button-1>, чтобы изменить содержимое Entry:

import tkinter as tk
from itertools import cycle

values = cycle(('Present', 'Leave', 'Absent'))

root = tk.Tk()

e_var = tk.StringVar()
# create a Entry that can be changed via mouse click only
entry = tk.Entry(root, textvariable=e_var, state='disabled', disabledforeground='black')
entry.pack()
# bind mouse left click to update the Entry from the cycle list
entry.bind('<Button-1>', lambda e: e_var.set(next(values)))

root.mainloop()
0 голосов
/ 08 апреля 2020

Я не могу найти лучшего способа. Я надеюсь, что это достаточно хорошо. Если это не то, что вы ожидаете, дайте мне знать в комментарии (я не уверен, правильно ли я вас понял).

import tkinter as tk


def handle_click(event):
    if entry.get() == '':
        entry.delete(0, tk.END)
        entry.insert(0, 'Present')
    elif entry.get() == 'Present':
        entry.delete(0, tk.END)
        entry.insert(0, 'Leave')
    elif entry.get() == 'Leave':
        entry.delete(0, tk.END)
        entry.insert(0, 'Absent')
    elif entry.get() == 'Absent':
        entry.delete(0, tk.END)
        entry.insert(0, '')

    print(event)


root = tk.Tk()
root.geometry('500x500')
entry = tk.Entry(root, width=50)
entry.grid(row=0, column=0, padx=5, pady=5)
entry.bind("<1>", handle_click)


root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...