Implémenter un paramètre de date dans Tkinter

Le code source est le suivant.

import tkinter as tk
from tkinter import ttk
import datetime
import calendar

year_list = ['2020', '2021']
month_list = [str(date).zfill(2) for date in range(1, 13)]
date_list = [str(date).zfill(2) for date in range(1, 32)]
hours_list = [str(date).zfill(2) for date in range(24)]
minutes_list = [str(date).zfill(2) for date in range(60)]
seconds_list = [str(date).zfill(2) for date in range(60)]


def change_date():
    def inner(self):
        last_day = calendar.monthrange(int(cb_year.get()), int(cb_month.get()))[1]
        if int(cb_date.get()) > last_day:
            cb_date.set(str(last_day).zfill(2))
        cb_date.config(values=[str(date).zfill(2) for date in range(1, last_day+1)])

        #Sortie au format datetime
        # date = cb_year.get()+'-'+cb_month.get()+'-'+cb_date.get()+' '+cb_hours.get()+':'+cb_minutes.get()+':'+cb_seconds.get()
        # print("Date = ", date)
    return inner


root = tk.Tk()
root.title('Date Picker')


cb_year = ttk.Combobox(root, values=year_list, width=5, state='readonly')
cb_year.set(year_list[0])
cb_year.bind('<<ComboboxSelected>>', change_date())
cb_year.pack(side='left')

label_slash = ttk.Label(root, text='/')
label_slash.pack(side='left')

cb_month = ttk.Combobox(root, values=month_list, width=5, state='readonly')
cb_month.set(month_list[0])
cb_month.bind('<<ComboboxSelected>>', change_date())
cb_month.pack(side='left')

label_slash = ttk.Label(root, text='/')
label_slash.pack(side='left')

cb_date = ttk.Combobox(root, values=date_list, width=5, state='readonly')
cb_date.set(date_list[0])
cb_date.pack(side='left')

label_space = ttk.Label(root, text=' ')
label_space.pack(side='left')

cb_hours = ttk.Combobox(root, values=hours_list, width=5, state='readonly')
cb_hours.set(hours_list[0])
cb_hours.pack(side='left')

label_colon = ttk.Label(root, text=':')
label_colon.pack(side='left')

cb_minutes = ttk.Combobox(root, values=minutes_list, width=5, state='readonly')
cb_minutes.set(minutes_list[0])
cb_minutes.pack(side='left')

label_colon = ttk.Label(root, text=':')
label_colon.pack(side='left')

cb_seconds = ttk.Combobox(root, values=seconds_list, width=5, state='readonly')
cb_seconds.set(seconds_list[0])
cb_seconds.pack(side='left')

root.mainloop()

La différence du dernier jour en fonction de l'année et du mois était gérée par le module calendrier. Après le démarrage, l'écran suivant apparaîtra pour que vous puissiez sélectionner la date et l'heure. キャプチャ.PNG

Merci d'avoir lu jusqu'au bout. Revoyons-nous.

Recommended Posts

Implémenter un paramètre de date dans Tkinter
Implémenter un décorateur de vue personnalisé avec Pyramid
Implémenter un modèle utilisateur personnalisé dans Django
Comment implémenter un sélecteur de dégradé dans Houdini
Mettre en œuvre une recherche de visage similaire en une demi-journée
Insérer une date sans interruption dans CotEditor
Je veux facilement implémenter le délai d'expiration en python
Manipulation de date en Python
Application utilisant des onglets dans Tkinter
Mettre en œuvre des recommandations en Python
J'ai essayé d'implémenter un pseudo pachislot en Python
Implémenter XENO avec python
dict in dict Transforme un dict en dict
Obtenir la date en Python
Calculer la date avec python
Implémenter sum en Python
Calculer les dates en Python
Implémenter Traceroute dans Python 3
J'ai essayé d'implémenter un automate cellulaire unidimensionnel en Python
Boucle sur un générateur qui renvoie un itérateur de date en Python
Spécifiez la plage de dates avec l'opérateur de comparaison dans Python datetime
Comment implémenter provisoirement une barre de progression dans un langage de script
J'ai fait un jeu de puzzle (comme) avec Tkinter of Python
J'ai fait un chronomètre en utilisant tkinter avec python
Créons une fonction pour maintenir Button dans Tkinter
Une histoire sur la tentative d'implémentation de variables privées en Python.
Implémenter LSTM AutoEncoder avec Keras
Implémenter un réseau neuronal à 3 couches
Prendre une capture d'écran en Python
Implémenter la fonction de suivi dans Django
Créer une fonction en Python
Créer un dictionnaire en Python
Intégrer le graphe matplotlib dans Tkinter
Implémenter la fonction de minuterie dans pygame
Implémenter le transfert de style avec Pytorch
Mettre en œuvre une fermeture récursive dans Go
Implémenter Naive Bayes dans Python 3.3
Implémenter UnionFind (équivalent) en 10 lignes
Implémenter d'anciens chiffrements en python
Créer un bookmarklet en Python
Implémenter Redis Mutex en Python
Implémenter l'extension en Python
Mettre en œuvre un RPC rapide en Python
Implémenter l'algorithme de Dijkstra en python
Implémenter le bot de discussion Slack en Python
Manipulation de la date des chaînes en Python
Dessinez un cœur en Python
Implémenter le processus gaussien dans Pyro
Trier par date en python
Facile! Implémenter un bot Twitter qui s'exécute sur Heroku en Python
Créez une Spinbox qui peut être affichée en binaire avec Tkinter
Implémenter un automate fini déterministe en Python pour déterminer des multiples de 3
J'ai essayé de mettre en œuvre un jeu de dilemme de prisonnier mal compris en Python
Créez une Spinbox pouvant être affichée dans HEX avec Tkinter