Salut, je crée une petite application pour apprendre un peu python, et j'ai un problème que je n'avais pas ce matin, mes checkbutton sont pré cochés avec un tiret dedans, comment changer cela ?
Merci !
import time
import os
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
from datetime import datetime
import threading
from horloge import Horloge
class Application(tk.Tk):
def __init__(self):
super().__init__()
self.title("Bedtime")
self.geometry("400x215")
def hibernation_programmee(heure, minute):
# Récupérer l'heure actuelle
maintenant = datetime.now()
# Calculer le délai jusqu'à l'heure donnée
heure_desiree = datetime(maintenant.year, maintenant.month, maintenant.day, heure, minute)
delai = (heure_desiree - maintenant).total_seconds()
if delai < 0:
# Si l'heure donnée est déjà passée aujourd'hui, programmer pour demain
heure_desiree = heure_desiree.replace(day=maintenant.day + 1)
delai = (heure_desiree - maintenant).total_seconds()
# Attendre jusqu'à l'heure donnée
time.sleep(delai)
# Mettre l'ordinateur en veille prolongée
os.system("shutdown /h /f")
def eteindre_programmee(heure, minute):
# Récupérer l'heure actuelle
maintenant = datetime.now()
# Calculer le délai jusqu'à l'heure donnée
heure_desiree = datetime(maintenant.year, maintenant.month, maintenant.day, heure, minute)
delai = (heure_desiree - maintenant).total_seconds()
if delai < 0:
# Si l'heure donnée est déjà passée aujourd'hui, programmer pour demain
heure_desiree = heure_desiree.replace(day=maintenant.day + 1)
delai = (heure_desiree - maintenant).total_seconds()
# Attendre jusqu'à l'heure donnée
time.sleep(delai)
# Éteindre l'ordinateur
os.system("shutdown /s /f /t 1")
def lancer_script():
heure = int(heure_var.get())
minute = int(minute_var.get())
if veille_prolongee_check.get() and eteindre_check.get():
messagebox.showinfo("Erreur", "Veuillez choisir uniquement l'une des options 'Veille prolongée' ou 'Éteindre'.")
elif veille_prolongee_check.get():
# Exécuter le script de veille prolongée dans un thread séparé
threading.Thread(target=hibernation_programmee, args=(heure, minute)).start()
elif eteindre_check.get():
# Exécuter le script d'arrêt dans un thread séparé
threading.Thread(target=eteindre_programmee, args=(heure, minute)).start()
else:
messagebox.showinfo("Erreur", "Veuillez choisir l'une des options 'Veille prolongée' ou 'Éteindre'.")
def arreter_script():
os.system("shutdown /a")
messagebox.showinfo("Script arrêté", "Le script de mise en veille prolongée a été arrêté.")
if __name__ == "__main__":
app = Application()
# Créer les variables pour stocker l'heure, les minutes et les options
heure_var = tk.StringVar()
minute_var = tk.StringVar()
veille_prolongee_check = tk.BooleanVar()
eteindre_check = tk.BooleanVar()
# Créer les widgets
heure_label = ttk.Label(app, text="Heure (0-23) :")
heure_entry = ttk.Entry(app, textvariable=heure_var, width=5)
minute_label = ttk.Label(app, text="Minute (0-59) :")
minute_entry = ttk.Entry(app, textvariable=minute_var, width=5)
veille_prolongee_check = ttk.Checkbutton(app, text="Veille prolongée", variable=veille_prolongee_check)
eteindre_check = ttk.Checkbutton(app, text="Éteindre", variable=eteindre_check)
lancer_button = ttk.Button(app, text="START", command=lancer_script)
arreter_button = ttk.Button(app, text="STOP", command=arreter_script)
# Positionner les widgets dans la fenêtre
heure_label.grid(row=0, column=0, padx=5, pady=5, sticky="e")
heure_entry.grid(row=0, column=1, padx=5, pady=5, sticky="w")
minute_label.grid(row=1, column=0, padx=5, pady=5, sticky="e")
minute_entry.grid(row=1, column=1, padx=5, pady=5, sticky="w")
veille_prolongee_check.grid(row=2, column=0, columnspan=2, padx=5, pady=5)
eteindre_check.grid(row=3, column=0, columnspan=2, padx=5, pady=5)
lancer_button.grid(row=4, column=0, columnspan=2, padx=5, pady=5)
arreter_button.grid(row=5, column=0, columnspan=2, padx=5, pady=0)
# Créer l'horloge analogique
clock = Horloge(app, width=200, height=200)
clock.grid(row=0, column=2, rowspan=6, padx=10, pady=5)
app.mainloop()