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

Tkinter Python Discussion :

Ouverture de fichier [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2019
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Ouverture de fichier
    HELY42
    bonsoir,
    je suis débutant en programmation Python(3.9), j'ai codé un petit programme qui ne fonctionne pas comme je veux,
    une fenêtre Tkinter(Tk), avec un menu déroulant, une partie fonctionne mais pas la partie ouverture fichier pour apparaitre à l'écran,
    je ne trouve pas la solution quelqu'un a-t-il la solution,
    merci
    voilà le code,

    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
    #Le 29/06/2020
    #Python 3.9.0b3 (tags/v3.9.0b3:b484871, Jun  9 2020, 20:36:59) [MSC v.1924 64 bit (AMD64)] on win32
    #Auteur: Roland ROCHE
    #-*- coding: utf-8 -*-
    #coding: utf-8
     
    from tkinter import *
    from tkinter.filedialog import askopenfilename
     
    #créer une fenêtre principale:
    fen = Tk()
    fen.title("Mon App ")
     
    fen.config(bg='white')
     
    screen_x = int(fen.winfo_screenwidth())
    screen_y = int(fen.winfo_screenheight())
    window_x = 755
    window_y = 650
     
    posX = (screen_x //2)-(window_x//2)
    posY = (screen_y //2)-(window_y//2)
    geo = ("{}x{}+{}+{}").format(window_x, window_y, posX, posY)
     
    fen.resizable(width =False, height =False)
     
    fen.geometry(geo)
     
    #Définition des fonctions
     
    def Nouveau():
        import tkinter.filedialog
        f=tkinter.filedialog.askopenfile(
        title="Nouveau"),
        filetypes=(open,'All files',';*','CVS files', 'cvs','a')
        print()
     
    def Ouvrir():
        import tkinter.filedialog
        Tk().withdraw()
        f=tkinter.filedialog.askopenfile(
        title="Ouvrir"),
        filetypes=([(open,'All files', '*', "a", 'text files', 'txt')])
     
        print()
     
     
    def Enregistrer():
        import tkinter.filedialog
        f=tkinter.filedialog.asksaveasfile(
        title="Enregistrer...un fichier"),
        filetypes=(open,'CVS files','cvs'),
        print()
     
    def Enregistrersous():
        import tkinter.filedialog
        f=tkinter.filedialog.asksaveasfile(
        title="Enregistrer...un fichier sous"),
        filetypes=('CVS files','cvs')
        print()
     
    def Quitter():
        print("Quitter...Ctrl+Q")
     
     
     
     
    def alert():
        #showinfo_Menubar ,("alerte", "Bravo")
     
        showinfo_Menubar = open_menubar("alerte", "Bravo")
     
    menubar = Menu(fen)
     
    menu1 = Menu(menubar, tearoff=0)
    menu1.add_command(label="Nouveau Ctrl+N", command=Nouveau)
    menu1.add_command(label="Ouvrir Ctrl+O", command=Ouvrir)
    menu1.add_command(label="Enregistrer Ctrl+S", command=Enregistrer)
    menu1.add_command(label="Enregistrer Sous Ctrl+Maj+S", command=Enregistrersous)
    menu1.add_separator()
    menu1.add_command(label="Quitter", command=Quitter)
    menubar.add_cascade(label="Fichier", menu=menu1)
     
    fen.config(menu=menubar)
     
     
     
     
    fen.mainloop()
    merci!!

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 313
    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 313
    Points : 36 819
    Points
    36 819
    Par défaut
    Salut,

    Citation Envoyé par HELY42 Voir le message
    une partie fonctionne mais pas la partie ouverture fichier pour apparaitre à l'écran,
    Pour que le contenu du fichier apparaisse "à l'écran", il faut le lire et (éventuellement) afficher son contenu dans un widget Text.
    Mais comme vous n'essayez pas de faire quoi que ce soit avec...

    - W

  3. #3
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 882
    Points : 1 545
    Points
    1 545
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    une remarque en passant:
    On importe un module une seule fois au début du programme...

  4. #4
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2019
    Messages : 5
    Points : 3
    Points
    3
    Par défaut ouverture fichier tkinter(python3.9)
    HELY42
    Bonjour,
    si j'enlève les lignes, 32, 39, 49, 56, mon code ne fonctionne plus du tout.
    sinon avec un message d'erreur il est toujours possible, à force de recherche et persévérance d'espéré une solution,
    mais sans message d'erreur je reste béat et comblé d'incertitude.
    sur les forums je trouve des bout d'exemples mais qui ne sont pas compatibles soit avec mon code soit avec ma version python.
    Je suis à l'arrêt.
    je continue à chercher.
    merci!!!

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 313
    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 313
    Points : 36 819
    Points
    36 819
    Par défaut
    Salut,

    Citation Envoyé par HELY42 Voir le message
    si j'enlève les lignes, 32, 39, 49, 56, mon code ne fonctionne plus du tout.
    Quand à la ligne 2 vous écrivez: from tkinter.filedialog import askopenfilename, c'est pour définir la variable globale askopenfilename et l'utiliser par la suite i.e. ligne 33:
    écrire askopenfilename(...) plutôt que f=tkinter.filedialog.askopenfile(...).
    Changer d'avis en cours de route n'est pas interdit.
    Mais dans ce cas, il faut être cohérent: modifier la ligne 2 pour écrire from tkinter.filedialog import askopenfile, asksaveasfile (si vous voulez utiliser ces fonctions là par la suite...)

    sur les forums je trouve des bout d'exemples mais qui ne sont pas compatibles soit avec mon code soit avec ma version python.
    Je suis à l'arrêt.
    je continue à chercher.
    Si vous vous contentez de recopier du code sans apprendre à le lire et comprendre comment/pourquoi il fonctionne... il vous sera difficile d'en faire quoi que ce soit.
    Ouvrez un tuto. ils donnent des explications et des tas d'exemples de code qui pourront vous servir par la suite.
    Vous y aurez travaillé un peu dessus pour comprendre comment ils fonctionnent, çà sera plus simple à adapter.

    - W

  6. #6
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2019
    Messages : 5
    Points : 3
    Points
    3
    Par défaut ouverture fichier tkinter(python3.9)
    HELY42
    bonsoir,
    j'avais remarqué qu'en supprimant la ligne 2 du code et en conservant les lignes 32, 39, 49, 56 ,le code fonctionnait,
    je ne recopie pas bêtement du code en copié collé, pour écrire ce petit code j'ai cherché, tutos, exemples, le pdf python débutant,
    je sais par exemple afficher une image du répertoire.
    avec mon IDLE python 3.9 j'arrive à corriger supprimer du rouge, mais là je butte.
    ma question n'est pas pour tester la connaissance des maîtres mai pour élargir la mienne.
    merci!!!

  7. #7
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 882
    Points : 1 545
    Points
    1 545
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    Voici, un exemple minimal pour afficher le contenu d'un fichier selectionné dans la boite de dialogue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import tkinter as tk
    from tkinter.filedialog import askopenfile
     
    root = tk.Tk()
    txt = tk.Text(root)
    txt.grid()
     
    f= askopenfile(title="Ouvrir")
    for w in f:
        txt.insert('insert',w)
     
    root.mainloop()

  8. #8
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2019
    Messages : 5
    Points : 3
    Points
    3
    Par défaut ouverture fichier tkinter(python3.9)
    HELY42
    Bonjour,
    J'ai du mal m'exprimé lors de ma demande,
    Je veux faire une app avec un menu déroulant, pour que l'utilisateur clic sur Fichiers, Ouvrir.
    la boîte de dialogue s'ouvre, il clic autant de foi que nécessaire sur les dossiers et sous dossiers,
    puis sur le document désiré quelque il soit, word, exel , pdf, ouvrir et le document apparait à l'écran.
    L'exemple que vous me donnez, je le mets dans mon IDLE, mais il n'ouvre pas le contenu de mon document, mais le code de mon document.
    Est-il possible d'avoir les ligne de code nécessaire à la suite de mon code pour que je puisse continué.
    Je stock tout ces précieux renseignements pour plus tard quand je serrai plus avancé.
    Merci!!
    Cordialement RR

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 313
    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 313
    Points : 36 819
    Points
    36 819
    Par défaut
    Salut,

    Pour ouvrir faire ouvrir un fichier par l'application associée, os.startfile(...) le fait très bien.

    Quel est l'intérêt de coder ce que fait déjà très bien Windows Explorer: sélectionner un fichier, lancer l'application associée en double cliquant dessus si vous ne prenez pas le temps de comprendre comment çà fonctionne ni d'apprendre à programmer?



    - W

  10. #10
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2019
    Messages : 5
    Points : 3
    Points
    3
    Par défaut ouverture fichier tkinter(python3.9)
    HELY42
    Bonjour,
    Merci pour les renseignements,
    Je vais étudié,
    Discussion close.
    Cordialement RR

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

Discussions similaires

  1. ouverture fichier
    Par zizou771 dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 11/10/2005, 10h49
  2. ouverture fichier
    Par philippe123 dans le forum ASP
    Réponses: 3
    Dernier message: 01/08/2005, 14h11
  3. activation macro lors d'une ouverture fichier Excel
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2005, 15h08
  4. Problème ouverture fichier par double clic...
    Par sankookai dans le forum MFC
    Réponses: 4
    Dernier message: 11/05/2005, 09h13
  5. [VBA-E] Macro ouverture fichier déja ouvert
    Par bhaal76 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/12/2002, 14h30

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