IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Affichage d'une page Web dans une frame


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2023
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2023
    Messages : 12
    Par défaut Affichage d'une page Web dans une frame
    Bonjour,

    J'aimerais afficher la page web de la fonction "link" dans la frame "frame_output". Es-ce possible?

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    # Import des modules externes :
    from tkinter import messagebox
    import webbrowser
    import tkinter as tk
     
    # Ouverture de la page web avec le navigateur par défaut :
    def link(lien, complement_lien):    
        webbrowser.open_new(url = lien + complement_lien.replace(" ",""))
     
    # envoi vers le lien en fonction de la saisie :
    def recherche():
        # Récupérer les valeurs saisies :
        siren3 = siren3_entry.get()
        inpi = inpi_entry.get()
        siren4 = siren4_entry.get()
     
        # Compter le nombre de saisies :
        saisie_count = 0
        if siren3:
            saisie_count += 1
        if inpi:
            saisie_count += 1
        if siren4:
            saisie_count += 1
     
        # Gestion de la recherche en fonction du noombre de saisie :
        # Cas où l'utilisateur n'a pas saisi de valeurs
        if saisie_count == 0:
            messagebox.showerror("Erreur", "Vous n'avez pas saisi de données")
        # Cas où l'utilisateur a pas saisi une seule valeur    
        elif saisie_count == 1:
            if siren3:
                link(lien_sirene3, siren3)
            elif inpi:
                link(lien_inpi, inpi)
            elif siren4:
                link(lien_sirene4, siren4)
        # Cas où l'utilisateur a pas saisi plusieurs valeurs   
        else:
            messagebox.showerror("Erreur", "Vous ne pouvez saisir qu'une seule valeur à la fois")
     
    # Remise à vide des zones de saisie :
    def delete():
        siren3_entry.delete(0, 'end')
        inpi_entry.delete(0, 'end')
        siren4_entry.delete(0, 'end')
     
    # Définition des variables :
    lien_sirene3 = "https://xxxxxxxxxxxxxxxxxxxxxxxxxxxx="
    lien_sirene4 = "https://yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy="
    lien_inpi = "https://zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
     
    fenetre = tk.Tk()
    # Création de l'icone de la fenêtre :
    # fenetre.iconbitmap("pic_insee.ico")
    # Taille de la fenêtre :
    fenetre.geometry(("1200x800"))
    # Création du titre de la fenêtre :
    fenetre.title("Sirene accès rapide")
     
    # Création des frames principals
    frame_saisie = tk.Frame(fenetre)
    frame_output = tk.Frame(fenetre, width=1500, height=800)
    frame_saisie.grid(row=0, column=0)
    frame_output.grid(row=0, column=1)
     
    # Création et affichages des frames pour permettre le placement des widgets par groupe :
    frame_siren3 = tk.LabelFrame(frame_saisie, text="Sirene 3")
    frame_inpi = tk.LabelFrame(frame_saisie, text = "INPI")
    frame_siren4 = tk.LabelFrame(frame_saisie, text = "Sirene 4")
    frame_button = tk.Frame(frame_saisie)
    frame_siren3.pack(pady=(10,5))
    frame_inpi.pack(pady=5)
    frame_siren4.pack(pady=5)
    frame_button.pack(pady=5)
     
    # Création et placement des widgets ^pour la recherche sur Sirene3 :
    siren3_entry = tk.Entry(frame_siren3)
    siren3_entry.pack(padx=10, pady=(5,10))
     
    # Création et placement des widgets pour la recherche sur l'INPI :
    inpi_entry = tk.Entry(frame_inpi)
    inpi_entry.pack(padx=10, pady=(5,10))
     
    # Création et placement des widgets ^pour la recherche sur Sirene4 :
    siren4_entry = tk.Entry(frame_siren4)
    siren4_entry.pack(padx=10, pady=(5,10))
     
    # Création et placement des boutons
    recherche_btn = tk.Button(frame_button, text="Recherche", command=recherche, cursor="hand2")
    reset_btn = tk.Button(frame_button, text="Remise à zéro", command=delete, cursor="hand2")
     
    recherche_btn.grid(row=0, column=0, padx=5, pady=5)
    reset_btn.grid(row=0, column=1, padx=5, pady=5)
     
    # Affichage de la fenêtre créée :
    fenetre.mainloop()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    L'idée serait de créer une fenêtre depuis tkinter et de lancer le navigateur en lui disant d'afficher dans cette fenêtre.

    Sur le papier, c'est possible mais dans la pratique, il faut trouver les interfaces et comment les mettre en œuvre (ce qui peut avoir le mauvais gout de dépendre des environnements systèmes). Reste à voir si on trouve le comment de cette mise en œuvre sur Internet dans votre cas particulier.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2023
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2023
    Messages : 12
    Par défaut
    Salut,

    Merci pour ces infos. J'ai en effet tenté d'ouvrir dans une fenetre dédiée et la positionnée au niveau de la frame (oui je sais, ça fait bricolage) mais tkinter ne tiens pas compte des offset dans l'instruction geometry car le navigateur utilise en effet ses paramètres à lui

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Après vous pouvez essayer d'ajouter à tkinter une bibliothèque externe qui lui permettrait d'avoir un widget browser.... ou utiliser un autre GUI (tel que Qt) qui sait faire ça.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2023
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2023
    Messages : 12
    Par défaut
    Merci beaucoup, je parviens à faire se que je veux avec PyQt5.

    Il me reste à maitriser la bibliothèque qui a l'air moins simple que tkinter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/06/2006, 10h09
  2. Afficher une page web dans une autre page sans frame
    Par bahs dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 24/03/2006, 17h51
  3. [Appel URL] appel d'une page web dans 1 Java
    Par c4cf6 dans le forum Applets
    Réponses: 3
    Dernier message: 17/03/2006, 14h13
  4. integrer une page web dans une autre
    Par ma_mat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 08/11/2004, 11h01
  5. Réponses: 2
    Dernier message: 16/07/2004, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo