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 :

ouvrir un fichier.db


Sujet :

Tkinter Python

  1. #1
    Membre du Club
    Homme Profil pro
    Programmation C#
    Inscrit en
    Décembre 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Programmation C#

    Informations forums :
    Inscription : Décembre 2014
    Messages : 89
    Points : 48
    Points
    48
    Par défaut ouvrir un fichier.db
    Bonjour,
    j'ai un programme qui enregistre des donnees dans un fichier .db (type data base file). J'utilise sqlite3. Le probleme c'est que je voudrais que lorsque je clique sur un boutton dans mon programme, une fenetre tkinter s' ouvre et affiche le contenu de ce fichier dans la fenetre (jje pense qu'iil faudrait mettre un canvas). Pouvez-vous me guider ? Je vous remercie d'avance.

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

    Le SELECT retourne une liste de tuple.
    Chaque tuple correspondant à un enregistrement et leurs valeurs à celles des attributs.
    Visuellement, il faut construire un tableau (des lignes et des colonnes).
    Vous pouvez utilisez le gestionnaire de géométrie .grid et placer les valeurs dans des Label ou des Entry.

    Fabriquons les tuples:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> records = [ [ 'r-%d.%d' % (x, y) for y in range(5) ] for x in range(3)]
    >>> records
    [['r-0.0', 'r-0.1', 'r-0.2', 'r-0.3', 'r-0.4'], ['r-1.0', 'r-1.1', 'r-1.2', 'r-1
    .3', 'r-1.4'], ['r-2.0', 'r-2.1', 'r-2.2', 'r-2.3', 'r-2.4']]
    Autrement dit 3 lignes de 5 colonnes.

    Puis on les affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> import tkinter as tk
    >>> for x, r in enumerate(records):
    ...     for y, s in enumerate(r):
    ...         label = tk.Label(text=s)
    ...         label.grid(row=x, column=y)
    ...
    >>>
    Les premiers pas ne sont pas trop compliqués mais le voyage est loin d'être terminé car il y a beaucoup de fonctionnalités à ajouter.

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

  3. #3
    Membre du Club
    Homme Profil pro
    Programmation C#
    Inscrit en
    Décembre 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Programmation C#

    Informations forums :
    Inscription : Décembre 2014
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    Bonjour,
    merci beaucoup pour votre réponse mais quand je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    records = [ [ 'r-%d.%d' % (x, y) for y in range(5) ] for x in range(3)]
    records [['r-0.0', 'r-0.1', 'r-0.2', 'r-0.3', 'r-0.4'], ['r-1.0', 'r-1.1', 'r-1.2', 'r-1.3', 'r-1.4'], ['r-2.0', 'r-2.1', 'r-2.2', 'r-2.3', 'r-2.4']]
     
    import Tkinter as tk
    for x, r in enumerate(records):
        for y, s in enumerate(r):
            label = tk.Label(text=s)
            label.grid(row=x, column=y)
    Cela me marque:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "C:/Users/boubou/Desktop/Python/tableau.py", line 2, in <module>
        records [['r-0.0', 'r-0.1', 'r-0.2', 'r-0.3', 'r-0.4'], ['r-1.0', 'r-1.1', 'r-1.2', 'r-1.3', 'r-1.4'], ['r-2.0', 'r-2.1', 'r-2.2', 'r-2.3', 'r-2.4']]
    TypeError: list indices must be integers, not tuple

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

    Si vous ne savez pas encore reconnaître le prompt de la console Python ">>>" ou comprendre pourquoi écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    records [['r-0.0', 'r-0.1', 'r-0.2', 'r-0.3', 'r-0.4'], ['r-1.0', 'r-1.1', 'r-1.2', 'r-1.3', 'r-1.4'], ['r-2.0', 'r-2.1', 'r-2.2', 'r-2.3', 'r-2.4']]
    retourne l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "C:/Users/boubou/Desktop/Python/tableau.py", line 2, in <module>
        records [['r-0.0', 'r-0.1', 'r-0.2', 'r-0.3', 'r-0.4'], ['r-1.0', 'r-1.1', 'r-1.2', 'r-1.3', 'r-1.4'], ['r-2.0', 'r-2.1', 'r-2.2', 'r-2.3', 'r-2.4']]
    TypeError: list indices must be integers, not tuple
    çà ne va pas être possible.
    Désolé.

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

  5. #5
    Membre du Club
    Homme Profil pro
    Programmation C#
    Inscrit en
    Décembre 2014
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Programmation C#

    Informations forums :
    Inscription : Décembre 2014
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    Rebonjour,
    Merci pour cette réponse. J'ai trouvé un autre moyen sans utiliser sqlite3 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    obFichier = open('C:/Python27/essai.db','a')
    obFichier.write('Bonjour fichier')
    obFichier.close()
    Cela me suffit amplement pour ce que je veut faire. Et pour lire ce fichier je vais le mettre dans un canvas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    can4 = Canvas(base,bg="grey",height=1000, width=1000)
    can4.pack(side=RIGHT)
    ofi = open('C:/Python27/essai.db','r')
    t = ofi.read()
    can4.create_text(500,10,text= t,fill="#50565f",font="Calibri 15")                    
    ofi.close()
    Merci encore,

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

    Pour afficher du texte, le widget Text serait sans doute plus adapté surtout si vous voulez ajouter des traitements par la suite.

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

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/04/2004, 14h55
  2. ouvrir un fichier
    Par sofiane61 dans le forum MFC
    Réponses: 3
    Dernier message: 11/01/2004, 00h04
  3. [java][Oracle]Ouvrir un fichier(blob) avec le browser
    Par marsup54 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 11/09/2003, 14h35
  4. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 18h07
  5. [Kylix] Ouvrir un fichier en étant dans KYLIX
    Par Jackepsi dans le forum EDI
    Réponses: 2
    Dernier message: 05/11/2002, 16h59

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