Chargement en cours dcts/solutions.md +9 −0 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -142,3 +142,12 @@ while True: # loop forever sleep(2) sleep(2) ``` ``` ### Problème de chemin courant Pour lancer l'application sans être dans son répertoire. ```python import os # récupérer le chemin du répertoire courant path = os.getcwd() print("Le répertoire courant est : " + path) ``` No newline at end of file pupitre.py +18 −12 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -6,12 +6,18 @@ import tkinter as tk import tkinter as tk from tkinter import ttk, Scale, HORIZONTAL, CENTER from tkinter import ttk, Scale, HORIZONTAL, CENTER import csv import csv import os # récupérer le chemin du répertoire courant ''' Pour éviter d'avoir des problèmes de chemin quand on lance le programme de n'importe quel endroit''' current_path = os.getcwd() mute = False # le son n'est pas coupé au démarrage mute = False # le son n'est pas coupé au démarrage bg_color = "gray" bg_color = "gray" # Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo # Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo with open("./data/radios.csv", 'r', encoding='utf-8-sig') as radios_file: with open(current_path + "/data/radios.csv", 'r', encoding='utf-8-sig') as radios_file: ''' utf-8-sig au lieu de utf-8 pour éviter l'erreur sur le nom du 1er champ '\ufeffNom' ''' utf-8-sig au lieu de utf-8 pour éviter l'erreur sur le nom du 1er champ '\ufeffNom' pour extraire une donnée : radios_list[numéro de la radio][nom du champ]''' pour extraire une donnée : radios_list[numéro de la radio][nom du champ]''' Chargement en cours @@ -34,13 +40,13 @@ class Pupitre: self.root.attributes('-fullscreen', False) # < à basculer sur False pour les tests sur PC self.root.attributes('-fullscreen', False) # < à basculer sur False pour les tests sur PC # images des boutons # images des boutons self.icon_back = tk.PhotoImage(file="./icons/back.png") self.icon_back = tk.PhotoImage(file=current_path + "/icons/back.png") self.icon_play = tk.PhotoImage(file="./icons/play.png") self.icon_play = tk.PhotoImage(file=current_path + "/icons/play.png") self.icon_pause = tk.PhotoImage(file="./icons/pause.png") self.icon_pause = tk.PhotoImage(file=current_path + "/icons/pause.png") self.icon_stop = tk.PhotoImage(file="./icons/stop.png") self.icon_stop = tk.PhotoImage(file=current_path + "/icons/stop.png") self.icon_forward = tk.PhotoImage(file="./icons/forward.png") self.icon_forward = tk.PhotoImage(file=current_path + "/icons/forward.png") self.icon_sound = tk.PhotoImage(file="./icons/sound_up.png") self.icon_sound = tk.PhotoImage(file=current_path + "/icons/sound_up.png") self.icon_mute = tk.PhotoImage(file="./icons/mute.png") self.icon_mute = tk.PhotoImage(file=current_path + "/icons/mute.png") self.zones() # affichage des 3 zones self.zones() # affichage des 3 zones self.mosaique() # affichage d'une mosaïque de logos des radios self.mosaique() # affichage d'une mosaïque de logos des radios Chargement en cours Chargement en cours @@ -93,7 +99,7 @@ class Pupitre: # potentiomètre de volume # potentiomètre de volume # - on charge la configuration du volume sauvegardée # - on charge la configuration du volume sauvegardée lecture = open("webradiopi.cfg", "r") lecture = open(current_path + "/webradiopi.cfg", "r") volume_init = lecture.read() volume_init = lecture.read() lecture.close() lecture.close() # - affichage du potentiomètre de volume # - affichage du potentiomètre de volume Chargement en cours @@ -118,9 +124,9 @@ class Pupitre: try: try: if radios_list[num_radio]['Logo'] != "": # si un logo est associé à la radio if radios_list[num_radio]['Logo'] != "": # si un logo est associé à la radio self.logo[num_radio] = tk.PhotoImage(file="./images/" + radios_list[num_radio]['Logo']) self.logo[num_radio] = tk.PhotoImage(file=current_path + "/images/" + radios_list[num_radio]['Logo']) else: # s'il n'y a pas de logo pour la radio else: # s'il n'y a pas de logo pour la radio self.logo[num_radio] = tk.PhotoImage(file="./images/radio.png") self.logo[num_radio] = tk.PhotoImage(file=current_path + "/images/radio.png") # création du bouton avec le logo de la radio # création du bouton avec le logo de la radio btn_logo = tk.Button(self.zone_mosaique, image=self.logo[num_radio]) btn_logo = tk.Button(self.zone_mosaique, image=self.logo[num_radio]) # utilisation d'une fonction 'lambda' indexée sur la position du logo # utilisation d'une fonction 'lambda' indexée sur la position du logo Chargement en cours @@ -135,7 +141,7 @@ class Pupitre: def radio_selected(self, num_radio): def radio_selected(self, num_radio): self.radio_flux(radios_list[num_radio]['Url']) self.radio_flux(radios_list[num_radio]['Url']) # affichage de la radio sélectionnée # affichage de la radio sélectionnée self.logo_selected = tk.PhotoImage(file="./images/Large/" + radios_list[num_radio]['Logo']) self.logo_selected = tk.PhotoImage(file=current_path + "/images/Large/" + radios_list[num_radio]['Logo']) self.lbl_radio_selected.config(image=self.logo_selected) self.lbl_radio_selected.config(image=self.logo_selected) # print(radios_list[1]['Nom']) # print(radios_list[1]['Nom']) self.lbl_info_radio.config(text=radios_list[num_radio]['Nom'], font=('Helvatical bold', 20)) self.lbl_info_radio.config(text=radios_list[num_radio]['Nom'], font=('Helvatical bold', 20)) Chargement en cours webradiopi.cfg +1 −1 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff 77 75 No newline at end of file No newline at end of file Chargement en cours
dcts/solutions.md +9 −0 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -142,3 +142,12 @@ while True: # loop forever sleep(2) sleep(2) ``` ``` ### Problème de chemin courant Pour lancer l'application sans être dans son répertoire. ```python import os # récupérer le chemin du répertoire courant path = os.getcwd() print("Le répertoire courant est : " + path) ``` No newline at end of file
pupitre.py +18 −12 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -6,12 +6,18 @@ import tkinter as tk import tkinter as tk from tkinter import ttk, Scale, HORIZONTAL, CENTER from tkinter import ttk, Scale, HORIZONTAL, CENTER import csv import csv import os # récupérer le chemin du répertoire courant ''' Pour éviter d'avoir des problèmes de chemin quand on lance le programme de n'importe quel endroit''' current_path = os.getcwd() mute = False # le son n'est pas coupé au démarrage mute = False # le son n'est pas coupé au démarrage bg_color = "gray" bg_color = "gray" # Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo # Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo with open("./data/radios.csv", 'r', encoding='utf-8-sig') as radios_file: with open(current_path + "/data/radios.csv", 'r', encoding='utf-8-sig') as radios_file: ''' utf-8-sig au lieu de utf-8 pour éviter l'erreur sur le nom du 1er champ '\ufeffNom' ''' utf-8-sig au lieu de utf-8 pour éviter l'erreur sur le nom du 1er champ '\ufeffNom' pour extraire une donnée : radios_list[numéro de la radio][nom du champ]''' pour extraire une donnée : radios_list[numéro de la radio][nom du champ]''' Chargement en cours @@ -34,13 +40,13 @@ class Pupitre: self.root.attributes('-fullscreen', False) # < à basculer sur False pour les tests sur PC self.root.attributes('-fullscreen', False) # < à basculer sur False pour les tests sur PC # images des boutons # images des boutons self.icon_back = tk.PhotoImage(file="./icons/back.png") self.icon_back = tk.PhotoImage(file=current_path + "/icons/back.png") self.icon_play = tk.PhotoImage(file="./icons/play.png") self.icon_play = tk.PhotoImage(file=current_path + "/icons/play.png") self.icon_pause = tk.PhotoImage(file="./icons/pause.png") self.icon_pause = tk.PhotoImage(file=current_path + "/icons/pause.png") self.icon_stop = tk.PhotoImage(file="./icons/stop.png") self.icon_stop = tk.PhotoImage(file=current_path + "/icons/stop.png") self.icon_forward = tk.PhotoImage(file="./icons/forward.png") self.icon_forward = tk.PhotoImage(file=current_path + "/icons/forward.png") self.icon_sound = tk.PhotoImage(file="./icons/sound_up.png") self.icon_sound = tk.PhotoImage(file=current_path + "/icons/sound_up.png") self.icon_mute = tk.PhotoImage(file="./icons/mute.png") self.icon_mute = tk.PhotoImage(file=current_path + "/icons/mute.png") self.zones() # affichage des 3 zones self.zones() # affichage des 3 zones self.mosaique() # affichage d'une mosaïque de logos des radios self.mosaique() # affichage d'une mosaïque de logos des radios Chargement en cours Chargement en cours @@ -93,7 +99,7 @@ class Pupitre: # potentiomètre de volume # potentiomètre de volume # - on charge la configuration du volume sauvegardée # - on charge la configuration du volume sauvegardée lecture = open("webradiopi.cfg", "r") lecture = open(current_path + "/webradiopi.cfg", "r") volume_init = lecture.read() volume_init = lecture.read() lecture.close() lecture.close() # - affichage du potentiomètre de volume # - affichage du potentiomètre de volume Chargement en cours @@ -118,9 +124,9 @@ class Pupitre: try: try: if radios_list[num_radio]['Logo'] != "": # si un logo est associé à la radio if radios_list[num_radio]['Logo'] != "": # si un logo est associé à la radio self.logo[num_radio] = tk.PhotoImage(file="./images/" + radios_list[num_radio]['Logo']) self.logo[num_radio] = tk.PhotoImage(file=current_path + "/images/" + radios_list[num_radio]['Logo']) else: # s'il n'y a pas de logo pour la radio else: # s'il n'y a pas de logo pour la radio self.logo[num_radio] = tk.PhotoImage(file="./images/radio.png") self.logo[num_radio] = tk.PhotoImage(file=current_path + "/images/radio.png") # création du bouton avec le logo de la radio # création du bouton avec le logo de la radio btn_logo = tk.Button(self.zone_mosaique, image=self.logo[num_radio]) btn_logo = tk.Button(self.zone_mosaique, image=self.logo[num_radio]) # utilisation d'une fonction 'lambda' indexée sur la position du logo # utilisation d'une fonction 'lambda' indexée sur la position du logo Chargement en cours @@ -135,7 +141,7 @@ class Pupitre: def radio_selected(self, num_radio): def radio_selected(self, num_radio): self.radio_flux(radios_list[num_radio]['Url']) self.radio_flux(radios_list[num_radio]['Url']) # affichage de la radio sélectionnée # affichage de la radio sélectionnée self.logo_selected = tk.PhotoImage(file="./images/Large/" + radios_list[num_radio]['Logo']) self.logo_selected = tk.PhotoImage(file=current_path + "/images/Large/" + radios_list[num_radio]['Logo']) self.lbl_radio_selected.config(image=self.logo_selected) self.lbl_radio_selected.config(image=self.logo_selected) # print(radios_list[1]['Nom']) # print(radios_list[1]['Nom']) self.lbl_info_radio.config(text=radios_list[num_radio]['Nom'], font=('Helvatical bold', 20)) self.lbl_info_radio.config(text=radios_list[num_radio]['Nom'], font=('Helvatical bold', 20)) Chargement en cours
webradiopi.cfg +1 −1 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff 77 75 No newline at end of file No newline at end of file