Author: Coline R.

Projets

SPA – les bases de données

En 2022, on estime que 41 186 animaux ont été adoptés à la SPA et 44 199 animaux ont été recueillis par celle-ci. Afin de pouvoir répertorier les animaux présents à la SPA, une table de données est l’outil indispensable.

I – Présentation du projet

Pour commencer, la réalisation de la base de données se porte sur la simulation d’une SPA. Celle-ci se compose d’une page d’Acceuil comportant le menu en haut de la page.

Puis d’une page Ajouter où l’on rentre les informations sur un nouvel animal.

Par la suite, d’une page Modifier permettant de modifier les informations sur un animal déjà enregistré sur la base de données en rentrant son id et en choisissant la donnée à modifier. De plus, lorsque vous choisissez de supprimer un animal, il vous suffit de rentrer son id et de cliquer sur Supprimer l’animal ayant cet id.

Et enfin, la page Parcourir où l’on choisit par quel type de donnée nous souhaitons faire la recherche (id, espèce, race, nom, date et lieu) et où l’on écrit la valeur recherchée ou si c’est une date, si elle est égale, plus grande, plus petites, etc.

Pour chaque page, il est possible de supprimer toute la table, c’est-à-dire supprimer tout le tableau crée. Lorsque vous ajoutez et modifiez, le résultat de Parcourir se trouve sur la fenêtre blanche en dessous de Rechercher.

II – Mise en place du projet

Dans un premier temps, il a été primordial d’importer les librairies présentes pour la création de la base de données.

from tkinter import *
from tkinter import ttk
from tkinter.messagebox import showinfo
import sqlite3

La première ligne de code permet d’utiliser le nom des classes et fonctions définies sur tkinter. La seconde permet de créer des widgets. La troisième, showinfo permet de fournir des instructions à l’utilisateur. Enfin, d’importer le module SQLite3 permet d’interagir avec la base de données en .db .

Après avoir importé les modules dont on a besoin, il faut établir une connexion avec la base de données « base_SPA.db » et créer un curseur pour exécuter les commandes SQL .

connection = sqlite3.connect('base_SPA.db')
curseur = connection.cursor()
Ensuite, il faut créer les différentes fenêtres telles que accueil, ajouter, modifier, parcourir qui sont présents tout le long et dès le début à la page Accueil avec le bouton pour vider la table, c'est-à-dire effacer les données de la table.
from tkinter import *
from tkinter import ttk
from tkinter.messagebox import showinfo
import sqlite3

#génération du lien de la base de donnée
connection = sqlite3.connect('base_SPA.db')
curseur = connection.cursor()

#génération de la base de donnée si elle n'existe pas
curseur.execute("CREATE TABLE IF NOT EXISTS ANNIMAL(id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, nom TEXT, espèce TEXT, race TEXT, age INT, trouvé_où TEXT)")

connection.commit()
curseur.close()
connection.close()

# création de toutes les fenêtres
def afficher_nouvelle_fenetre(message):
    fenetre.withdraw()  # Masque la fenêtre actuelle
    nouvelle_fenetre = Toplevel(fenetre)
    nouvelle_fenetre.title("Nouvelle Fenêtre")
    nouvelle_fenetre.geometry("720x555") 
    Label(nouvelle_fenetre, text=message).pack(padx=20, pady=20)

def affiche_acceuil():
    cadre_pile.append(cadre_acceuil)  # création de la page d'accueil
    afficher_cadre(cadre_acceuil)

def affiche_ajoute():
    cadre_pile.append(cadre_ajoute)  # création de la page ajoute
    afficher_cadre(cadre_ajoute)

def affiche_modifier():
    cadre_pile.append(cadre_modifier)  # création de la page modifier
    afficher_cadre(cadre_modifier)
    
def affiche_parcourir():
    cadre_pile.append(cadre_parcourir)  # création de la page parcourir
    afficher_cadre(cadre_parcourir)


def afficher_cadre(cadre):
    for c in [cadre_acceuil, cadre_ajoute, cadre_modifier, cadre_parcourir]:
        c.pack_forget()
    cadre.pack()

#génération de la fenêtre
fenetre = Tk()

fenetre.title("SPA - les bases de données")
fenetre.geometry("720x555")
fenetre.config(bg="#C2C2C2")
fenetre.iconbitmap("logo.ico")

#fonction pour vider la table
def vider_table():
    connection = sqlite3.connect('base_SPA.db')
    curseur = connection.cursor()
    curseur.execute("DROP TABLE ANNIMAL")
    curseur.execute("CREATE TABLE ANNIMAL(id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, nom TEXT, espèce TEXT, race TEXT, age INT, trouvé_où TEXT)")
    connection.commit()
    curseur.close()
    connection.close()
    
bouton_vider_table = Button(fenetre, text="vider la table", font=("Consolas",15), bg="white", fg="black",command = vider_table)
bouton_vider_table.place(x=530,y=480)

# Cadres pour différentes pages
cadre_acceuil = Frame(fenetre, bg="#C2C2C2")
cadre_ajoute = Frame(fenetre, bg="#C2C2C2")
cadre_modifier = Frame(fenetre, bg="#C2C2C2")
cadre_parcourir = Frame(fenetre, bg="#C2C2C2")

cadre_acceuil.pack()

# Création du menu
menubar = Menu(fenetre)

# Ajout des commandes directement au menu principal
menubar.add_command(label="Acceuil", command=affiche_acceuil)
menubar.add_command(label="Ajouter", command=affiche_ajoute)
menubar.add_command(label="Modifier", command=affiche_modifier)
menubar.add_command(label="Parcourir", command=affiche_parcourir)

# Configuration de la fenêtre avec la barre de menus
fenetre.config(menu=menubar)

# Initialisation de la pile des cadres
cadre_pile = [cadre_acceuil]

fenetre.mainloop()

Les fonctions permettent de gérer la navigation entre les différentes pages en fonction des actions de l’utilisateur. De plus, elles permettent de masquer les cadres précédemment affichés et affichent le cadre correspondant à la page demandée.

Après avoir créé nos différentes pages, il faut les construire, rajouter du texte, du champ de texte, etc. Tout d’abord, commence la page d’accueil, très simplement, on crée des blocs :

# création des "blocs" 
titre_acceuil = Label(cadre_acceuil, text="Bienvenue sur la base de données de la SPA", font=("Consolas", 20), bg="#C2C2C2", fg="black")
soustitre_acceuil = Label(cadre_acceuil, text="DONNONS-LEUR AUTANT QU'ILS NOUS APPORTENT !", font=("Consolas", 13), bg="#C2C2C2", fg="black")

# affichage de ces blocs
titre_acceuil.pack(pady=20)
soustitre_acceuil.pack()

Après cela, il ne nous reste plus qu’à créer les autres pages.

# création des different blocs + affichage des blocs
titre_ajoute = Label(cadre_ajoute, text="AJOUTER", font=("Consolas", 20), bg="#C2C2C2", fg="black")
titre_ajoute.pack(pady=20)
soustitre_ajoute = Label(cadre_ajoute, text="Veuillez entrer les données de l'animal", font=("Consolas", 13), bg="#C2C2C2", fg="black")
soustitre_ajoute.pack()
desc_chmp_nom_str_ajoute = Label(cadre_ajoute, text="entrez son nom", font=("Consolas", 13), bg="#C2C2C2", fg="black")
desc_chmp_nom_str_ajoute.pack()
chmp_nom_str_ajoute = Entry(cadre_ajoute, font=("Helvetica",15), bg="#ffffff", fg="black", width=30)
chmp_nom_str_ajoute.pack()
desc_chmp_espece_str_ajoute = Label(cadre_ajoute, text="entrez son espèce", font=("Consolas", 13), bg="#C2C2C2", fg="black")
desc_chmp_espece_str_ajoute.pack()
chmp_espece_str_ajoute = Entry(cadre_ajoute, font=("Helvetica",15), bg="#ffffff", fg="black", width=30)
chmp_espece_str_ajoute.pack()
desc_chmp_race_str_ajoute = Label(cadre_ajoute, text="entrez sa race", font=("Consolas", 13), bg="#C2C2C2", fg="black")
desc_chmp_race_str_ajoute.pack()
chmp_race_str_ajoute = Entry(cadre_ajoute, font=("Helvetica",15), bg="#ffffff", fg="black", width=30)
chmp_race_str_ajoute.pack()
desc_chmp_age_str_ajoute = Label(cadre_ajoute, text="entrez son âge", font=("Consolas", 13), bg="#C2C2C2", fg="black")
desc_chmp_age_str_ajoute.pack()
chmp_age_str_ajoute = Entry(cadre_ajoute, font=("Helvetica",15), bg="#ffffff", fg="black", width=30)
chmp_age_str_ajoute.pack()
desc_chmp_localisation_str_ajoute = Label(cadre_ajoute, text="entrez le lieu où il a été trouvé", font=("Consolas", 13), bg="#C2C2C2", fg="black")
desc_chmp_localisation_str_ajoute.pack()
chmp_localisation_str_ajoute = Entry(cadre_ajoute, font=("Helvetica",15), bg="#ffffff", fg="black", width=30)
chmp_localisation_str_ajoute.pack()

#fonction pour ajouter les donnée choisies dans les champs de texte de la page ajouter dans la base de donnéee
def ajouter_donnee():
    connection = sqlite3.connect('base_SPA.db')
    curseur = connection.cursor()
    data = (chmp_nom_str_ajoute.get(),chmp_espece_str_ajoute.get(),chmp_race_str_ajoute.get(),chmp_age_str_ajoute.get(),chmp_localisation_str_ajoute.get())
    curseur.execute("INSERT INTO ANNIMAL (nom,espèce,race,age,trouvé_où) VALUES (?,?,?,?,?)",data)
    connection.commit()
    curseur.close()
    connection.close()

# création et placement du bouton utiliser pour valider l'ajout de donnée
bouton_ajouter = Button(cadre_ajoute, text="Ajouter l'annimal", font=("Consolas",15), bg="white", fg="black",command = ajouter_donnee)
bouton_ajouter.pack(pady=20)

Dans ce code, nous créons la fenêtre Ajouter avec les informations à remplir. Lorsque l’on clique sur le bouton Ajouter l’animal, celui ci sera ajouté automatiquement à la table de données.

# création des different blocs + affichage des blocs
titre_modifier = Label(cadre_modifier, text="MODIFIER", font=("Consolas", 20), bg="#C2C2C2", fg="black")
titre_modifier.pack(pady=20)
desc_chmp_modifier = Label(cadre_modifier, text="entrez l'id de l'annimal", font=("Consolas", 13), bg="#C2C2C2", fg="black")
desc_chmp_modifier.pack()
chmp_str_modifier = Entry(cadre_modifier, font=("Helvetica",15), bg="#ffffff", fg="black", width=5)
chmp_str_modifier.pack()

# création de la liste déroulante
desc_liste_deroul_modifier = Label(cadre_modifier, text="Choissisez quel donnée voulez vous modifier", font=("Consolas", 13), bg="#C2C2C2", fg="black")
desc_liste_deroul_modifier.pack(pady=10)
liste_choix = ["Nom","Race","Espèce","Age","Localisation"]
liste_deroulante = ttk.Combobox(cadre_modifier, values=liste_choix)
liste_deroulante.pack()

desc_chmp2_modifier = Label(cadre_modifier, text="entrez la modification", font=("Consolas", 13), bg="#C2C2C2", fg="black")
desc_chmp2_modifier.pack(pady=10)
chmp2_str_modifier = Entry(cadre_modifier, font=("Helvetica",15), bg="#ffffff", fg="black", width=30)
chmp2_str_modifier.pack()

# fonction pour modifier une donnée dans la base de donnée à partir de la liste déroulante et le champ de texte
def modifier_donnee():
    select = liste_deroulante.get()
    datas = (chmp2_str_modifier.get(),chmp_str_modifier.get())
    connection = sqlite3.connect('base_SPA.db')
    curseur = connection.cursor()
    if select == "Nom":
        curseur.execute("UPDATE ANNIMAL SET nom = ? WHERE id = ?",datas)
    if select == "Race":
        curseur.execute("UPDATE ANNIMAL SET race = ? WHERE id = ?",datas)
    if select == "Espèce":
        curseur.execute("UPDATE ANNIMAL SET espèce = ? WHERE id = ?",datas)
    if select == "Age":
        curseur.execute("UPDATE ANNIMAL SET age = ? WHERE id = ?",datas)
    if select == "Localisation":
        curseur.execute("UPDATE ANNIMAL SET trouvé_où = ? WHERE id = ?",datas)
    connection.commit()
    curseur.close()
    connection.close()

# fonction pour supprimer toutes les données lié à un identifiant dans la base de donnée   
def supprimer_donnee():
    sup_select = chmp_str_modifier.get()
    connection = sqlite3.connect('base_SPA.db')
    curseur = connection.cursor()
    curseur.execute("DELETE FROM ANNIMAL WHERE id = ?",sup_select)
    connection.commit()
    curseur.close()
    connection.close()

# création et placement des boutons pour valider les modifications / suppressions
bouton_sup = Button(cadre_modifier, text="Supprimer l'annimal ayant cet id", font=("Consolas",15), bg="white", fg="black", command = supprimer_donnee)
bouton_sup.pack(pady=30)
bouton_modifier = Button(cadre_modifier, text="Modifier", font=("Consolas",15), bg="white", fg="black", command = modifier_donnee)
bouton_modifier.pack()

La fenêtre modifier quant à elle a besoin de l‘id de l’animal. En effet, pour modifier une information sur un animal, la personne doit rentrer l’id présente sur la table de donnée correspondant à l’animal, après cela, elle choisit l‘information à modifier dans la liste déroulante puis rentre la correction à faire. Ensuite, cette fenêtre abrite aussi la possibilité de supprimer l’animal comme cela a été dit précédemment grâce à la fonction supprimer_donnee() par l’id de l’animal.

# création des different blocs + affichage des blocs
titre_parcourir = Label(cadre_parcourir, text="PARCOURIR", font=("Consolas", 20), bg="#C2C2C2", fg="black")
titre_parcourir.pack(pady=10)
desc_liste_deroulante_parcourir = Label(cadre_parcourir, text="Choississez par qu'elle type de donnee souhaitez vous rechercher", font=("Consolas", 13), bg="#C2C2C2", fg="black")
desc_liste_deroulante_parcourir.pack(pady=10)

# création de la liste déroulante du type de donnée
liste_deroulante_parcourir = ttk.Combobox(cadre_parcourir, values=["id","Nom","Espèce", "Age","Race","Localisation"])
liste_deroulante_parcourir.set("id")
liste_deroulante_parcourir.pack(pady=10)

# création du cadre blanc où apparaissent les recherches effectuées
frame_info_recherche = Frame(cadre_parcourir, bg="#C2C2C2",heigh = 50,width=650)
frame_info_recherche.pack_propagate(False) 
frame_info_recherche.pack()

desc_chmp_str_parcourir = Label(frame_info_recherche, text="écrivez cette information de recherche", font=("Consolas", 10), bg="#C2C2C2", fg="black")
desc_chmp_str_parcourir.place(x=0,y=0)

chmp_str_parcourir = Entry(frame_info_recherche, font=("Helvetica",10), bg="#ffffff", fg="black", width=15)
chmp_str_parcourir.place(x=0,y=23)

desc_chmp_str_parcourir = Label(frame_info_recherche, text="Si c'est une valeur elle doit être :", font=("Consolas", 10), bg="#C2C2C2", fg="black")
desc_chmp_str_parcourir.place(x=390,y=0)

# création de la liste déroulante pour préciser la recherche par valeurs numériques
liste_deroulante_info_recherche = ttk.Combobox(frame_info_recherche, values=["=","<=",">=","<",">"],width=15)
liste_deroulante_info_recherche.set("=")
liste_deroulante_info_recherche.place(x=390,y=23)

variable = StringVar()
variable.set("1")
chmp_str_info_recherche_parcourir = Entry(frame_info_recherche,textvariable=variable, font=("Helvetica",10), bg="#ffffff", fg="black", width=15)
chmp_str_info_recherche_parcourir.place(x=510,y=23)

# création de la variable qui stocke tout le résultat d'une recherche
global recherche
recherche = ""

# fonction pour construire notre variable
def parcourir_donnee():
    global recherche
    recherche = ""
    connection = sqlite3.connect('base_SPA.db')
    curseur = connection.cursor()
    data = [chmp_str_parcourir.get()]
    data2 = [chmp_str_info_recherche_parcourir.get()]
    if liste_deroulante_parcourir.get() == "Nom":
        recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE nom = ?",data).fetchall()
    if liste_deroulante_parcourir.get() == "Race":
        recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE race = ?",data).fetchall()
    if liste_deroulante_parcourir.get() == "Espèce":
        recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE espèce = ?",data).fetchall()
    if liste_deroulante_parcourir.get() == "Localisation":
        recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE trouvé_où = ?",data).fetchall()
    if liste_deroulante_parcourir.get() == "Age":
        if liste_deroulante_info_recherche.get() == "=":
            recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE age = ?",data2).fetchall()
        elif liste_deroulante_info_recherche.get() == "<":
            recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE age < ?",data2).fetchall()
        elif liste_deroulante_info_recherche.get() == ">":
            recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE age > ?",data2).fetchall()
        elif liste_deroulante_info_recherche.get() == "<=":
            recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE age <= ?",data2).fetchall()
        elif liste_deroulante_info_recherche.get() == ">=":
            recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE age >= ?",data2).fetchall()
    if liste_deroulante_parcourir.get() == "id":
        if liste_deroulante_info_recherche.get() == "=":
            recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE id = ?",data2).fetchall()
        elif liste_deroulante_info_recherche.get() == "<":
            recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE id < ?",data2).fetchall()
        elif liste_deroulante_info_recherche.get() == ">":
            recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE id > ?",data2).fetchall()
        elif liste_deroulante_info_recherche.get() == "<=":
            recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE id <= ?",data2).fetchall()
        elif liste_deroulante_info_recherche.get() == ">=":
            recherche = curseur.execute("SELECT nom,espèce,race,age,trouvé_où FROM ANNIMAL WHERE id >= ?",data2).fetchall()
    connection.commit()
    curseur.close()
    connection.close()

# fonction pour afficher la recherche sous une forme lisible
def texte_parcourir():
    texte_widget_frame_parcourir.delete("1.0","end")
    parcourir_donnee()
    for car in str(recherche):
        if car == "[" or car == "]" or car == "(" or car == "'"  :
            texte_widget_frame_parcourir.insert(INSERT,"")
        elif car == ",":
            texte_widget_frame_parcourir.insert(INSERT,"")
        elif car == ")":
            texte_widget_frame_parcourir.insert(INSERT,"\n")
        else :
            texte_widget_frame_parcourir.insert(INSERT,car)
  
# création et placement du bouton pour valider une recherche
bouton_parcourir = Button(cadre_parcourir, text="Rechercher", font=("Consolas",15), bg="white", fg="black",command = texte_parcourir)
bouton_parcourir.pack(pady=10)


frame_parcourir = Frame(cadre_parcourir, bg="#ffffff",heigh = 210,width=650)
frame_parcourir.pack_propagate(False) 
frame_parcourir.pack()

# création et placement de la barre de scroll lié à la recherche effectuée
scrollbar = Scrollbar(frame_parcourir, orient=VERTICAL)
scrollbar.pack(side=RIGHT, fill=Y)

texte_widget_frame_parcourir = Text(frame_parcourir, yscrollcommand=scrollbar.set)
texte_widget_frame_parcourir.pack(fill=BOTH, expand=True)

scrollbar = Scrollbar(texte_widget_frame_parcourir)

scrollbar.config(command=texte_widget_frame_parcourir.yview)

texte_recherche_parcourir = Text(frame_parcourir)

Dans ce code, nous créons la fenêtre Parcourir avec toutes ses informations.

Puis, finalement, on peut terminer le script :

# Affichage de la page d'accueil au lancement du script
cadre_acceuil.pack()

# Création du menu
menubar = Menu(fenetre)

# Ajout des commandes directement au menu principal
menubar.add_command(label="Acceuil", command=affiche_acceuil)
menubar.add_command(label="Ajouter", command=affiche_ajoute)
menubar.add_command(label="Modifier", command=affiche_modifier)
menubar.add_command(label="Parcourir", command=affiche_parcourir)

# Configuration de la fenêtre avec la barre de menus
fenetre.config(menu=menubar)

# Initialisation de la pile des cadres
cadre_pile = [cadre_acceuil]

fenetre.mainloop()

Cette fin de script permet d’afficher l’interface et ses informations. Sans cela, Le script ne serait pas utilisable

III – Conclusion

Ainsi, ce projet nous a permis de mobiliser nos bases acquises en python et SQL pour monter un projet traitant sur les bases de données. Ce type de projet n’est pas des plus simples compte tenu de la technique à avoir et des difficultés rencontrées telles que le positionnement des blocs et les interactions avec la base de données. Pour continuer, il est important dans ce type de projets de comprendre son code ligne à ligne afin de ne pas se tromper sur un nom, une valeur ou autres.

Tutoriels

Comment taper des accents français et étrangers sur un…

Aujourd’hui, il est fréquent d’écrire dans des langues étrangères. Or certaines d’entre elles utilisent des accents et nos claviers n’ont pas ces lettres accentuées ou seulement quelques-unes. Pourtant, vous pourriez en avoir besoin ! Je vous propose donc un tutoriel pour pouvoir taper des accents français et étrangers sur ordinateurs ou téléphones.

Mettre des accents sur les téléphones

Sur votre téléphone Android ou Apple, les accents français, mais aussi étrangers sont plutôt faciles à taper.

Dans un premier temps, tapez sur l’application comme vous le feriez normalement jusqu’à ce que vous arriviez à un mot que vous devez accentuer.

Ensuite, lorsque vous arrivez à la lettre accentuée, maintenez votre doigt sur la lettre du clavier virtuel où vous voulez mettre l’accent.

Vous devez normalement voir s’afficher plusieurs accents sur cette lettres puis faites glisser votre doigt vers la lettre accentuée appropriée lorsqu’elle apparaît. Relâchez votre doigt lorsque la lettre souhaitée est mise en surbrillance.

Maintenant, il ne vous reste plus qu’à continuer d’écrire et répéter ce processus lorsque vous vous trouvez confrontés à des lettres avec accents.

Utiliser les raccourcis clavier pour les ordinateurs

En revanche, lorsque vous êtes sur ordinateur, il est plus compliqué d’insérer des accents, mais cela est pour autant possible.

Que ce soit avec un clavier AZERTY ou un clavier QWERTY, l’utilisation reste la même. En effet, il vous suffit d’appuyer sur la touche ctrl, de choisir le type d’accent puis d’appuyer sur la lettre à accentuer.

  • Pour taper une lettre avec un circonflexe (â, ê…), tapez « ^ » puis la voyelle.
  • Pour faire un tréma (ä, ë…), tapez « ¨ » et la voyelle.

Dans le cas présent ci-dessus, nous voulons intégrer le ô. Si nous suivons la technique de raccourci clavier, il suffit d’appuyer sur la touche « ^ » puis de cliquer sur la lettre o.

A noter: certains claviers sont différents donc il est bien évident que les techniques seront différentes pour certains claviers.

Les raccourcis avec un Mac

Pour taper la plupart des accents sur Mac, vous utiliserez soit une longue pression sur la touche, soit la touche option / alt et une autre touche de modification pour obtenir l’accent.  Par exemple, avec la méthode longue pression sur la touche, si vous maintenez la touche « a » enfoncée, une fenêtre contextuelle apparaîtra après avoir maintenu cette touche enfoncée pendant quelques instants, indiquant les accents possibles pour cette lettre.

Sinon, il existe la touche Option qui permet d’inclure un accent sur la lettre.

Pour la lettre « é » par exemple, maintenez la touche « Option » enfoncée et appuyez sur la lettre « e« . Relâchez tout, puis appuyez sur la lettre « e » une seconde fois. Cette méthode fonctionne pour tout les accents aigus.

Pour les accents graves , maintenez la touche Option enfoncée, puis appuyez sur la touche « ` » (juste à côté du bouton « 1 » sur votre clavier). Relâchez vos touches, et appuyez sur la lettre que vous souhaitez accentuer.

Enfin, pour les accents circonflexes, maintenez la touche Option enfoncée, puis appuyez sur la touche « ^ » présente sur la touche 6. Relâchez vos touches, et appuyez sur la lettre que vous souhaitez accentuer comme précédemment.

Utiliser les codes de caractère ASCII(code Unicode)

Si vous ne voulez pas utiliser les raccourcis-claviers, vous pouvez tout aussi bien taper les lettres accentuées en utilisant la touche ALT. Pour cela, il est bien évident qu’il sera difficile de retenir tous les codes pour les lettres accentuées, hors vous devez vous souvenir que la touche ALT est toujours enfoncée en premier puis il faut la maintenir enfoncée tout au long de la frappe numérique du code.

Voici les codes pour les accents aigus:

  • é = ALT + 130
  • í = ALT + 0237
  • ó = ALT + 0243
  • ú = ALT + 0250
  • ý = ALT + 0253

Accents graves :

  • à = ALT +133
  • è = ALT + 0232
  • ì = ALT + 0236
  • ò = ALT + 0242
  • ù = ALT + 0249

 Accents circonflexes:

  • â = ALT + 131
  • ê =ALT + 136
  • î = ALT + 140
  • ô = ALT + 147
  • û = ALT + 150

Avec les tildes:

  • ã = ALT + 0227
  • ñ = ALT + 0241
  • õ = ALT + 0245

Avec les trémas:

  • ä = ALT + 0228
  • ë = ALT + 0235
  • ï = ALT + 0239
  • ö = ALT + 0246
  • ü = ALT + 0252
  • ÿ = ALT + 0255

Avec la cédille:

  • ç = ALT + 135

Comme vous pouvez le remarquer , la table ASCII permet d’écrire les tildes qui nous sont indispensables en espagnol lorsque nous devons écrire des mots comme « mañana » et que nous ne disposons pas sur notre clavier AZERTY. De plus, la table ASCII regroupe tous les symboles dont nous avons besoin pour écrire, Il est donc judicieux de pouvoir s’en servir.

Cependant, les codes ALT fonctionnent uniquement avec le pavé numérique, et non avec la rangée de chiffres en haut de votre clavier. Donc, ils ne fonctionneront pas sur un ordinateur portable. Il est donc impératif de choisir une autre méthode.

Utilisation de la table de caractères sur Windows

La table de caractère Windows peut aussi être un moyen de pouvoir accentuer vos mots.

Pour y accéder, il vous suffit de cliquer sur le menu Démarrer où vous inscrirez votre recherche Table de caractères.

Après cela il vous suffit de l’ouvrir , de cliquer sur la lettre, de la sélectionner puis de la copier.

Enfin il ne vous reste plus qu’à coller votre lettre sélectionnée et copiée dans la table des caractères en utilisant un CRTL + V ou un clic droit, sélectionner, Coller.

Remarque: grâce à cette table, vous avez la possibilité de récupérer toutes les lettres accentuées françaises mais aussi étrangères comme avec le code Unicode.

Tutoriels

Comment retrouver et protéger les mots de passe enregistrés…

De nos jours retenir tous nos mots de passe devient de plus en plus compliqué tout comme les sécuriser lorsqu’on les a enregistrés afin d’éviter qu’ils ne soient volés. Pour cela, je vous propose un tutoriel pour retrouver ces mots de passe sur Firefox ,Google Chrome ou Edge et les protéger en limitant les risques de vols et d’usurpation d’identité.

Retrouver ses mots de passe sur Firefox

Sur votre ordinateur, ouvrez Firefox puis cliquez sur le menu en haut à droite représenté par trois barres horizontales

Allez sur Mots de passe afin d’accéder à tous les mots de passe enregistrés

Maintenant que vous y êtes, vous avez à votre gauche les sites et identifiants enregistrés et vous avez la possibilité d’accéder aux mots de passe et adresses des sites. Pour accéder à votre mot de passe, il suffit seulement de cliquer sur l’oeil

Retrouver ses mots de passe sur Google Chrome

Comme sur Firefox, ouvrez l’onglet chrome et accéder au menu représenté par trois points en haut à droite

Par la suite allez dans Paramètre

Après y avoir accédé, dirigez-vous vers la section Saisie automatique et cliquez sur Gestionnaire de mots de passe

Vous pouvez maintenant accéder à vos identifiants et mots de passe déjà enregistrés dans Chrome en cliquant sur l’oeil

Attention, contrairement à Firefox, Google Chrome possède une sécurité qui avant d’afficher le mot de passe vous demande votre identifiant et votre code d’ordinateur

Retrouver ses mots de passe dans Edge

Enfin nous passons au dernier site afin de retrouver les mots de passe enregistré Miscrosoft Edge!

Comme les deux autres, il faut se rendre sur le menu représenté par 3 petits points

Vous recherchez comme dans Google Chrome la rubrique Paramètres

Une nouvelle page s’ouvre. Il vous faut sélectionner Profils puis dans la partie centrale Mots de passe

Vous pouvez maintenant accéder aux sites Web avec pour chacun un identifiant, un mot de passe et l’intégrité de celui-ci (permet d’évaluer sa vulnérabilité)

Enfin, pour afficher votre mot de passe il vous suffira d’appuyer sur l’icône en forme d’oeil où par la suite une fenêtre s’affichera en vous demandant votre identifiant et votre mot de passe de votre ordinateur comme cela se passe pour Google chrome

Protéger ses mots de passe sur Firefox

Comme on a pu le remarquer, Google Chrome et Microsoft Edge possède déjà une protection de mots de passe lorsque l’on clique sur l’oeil afin de limiter le vol de mots de passe et l’usurpation d’identité. Firefox quant à lui ne possède pas cela directements mais permet tout de même de protéger les mots de passe.

Comme pour récupérer un mot de passe, vous devez refaire l’étape:

  • accéder au menu

Après cela, ne sélectionnez pas Mots de passe mais Paramètres

Une fois que vous êtes sur la page, dans le menu de gauche, cliquez sur Vie privée et sécurité puis faites défiler avec votre souri pour arriver à la section Identifiant et mots de passe. Une fois là il vous suffit de sélectionner Utiliser un mot de passe principal

Vous devrez par la suite définir un mot de passe de base (principal) afin d’accéder et de protéger ensuite les mots de passe spécifiques enregistrés que vous validerez par OK

Une fois cela réalisé vous pouvez le tester

  • accédez au menu
  • cliquez sur mot de passe

et normalement, Firefox vous créera une fenêtre qui vous demandera votre mot de passe principal afin d’accéder à ceux que vous voulez