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 :

Insert text affichage datas non triée dans l'ordre de la boucle for [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Membre régulier Avatar de lagratteCchouette
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 74
    Points
    74
    Par défaut Insert text affichage datas non triée dans l'ordre de la boucle for
    Bonjour,
    Que faut-il faire pour que mes données insérées dans un widget text+scrollbar s'affichent bien dans l'ordre de tri prévu ?
    Ci-dessous le résultat que cela donne et même que les lignes se mélanges par moment.
    Dans ma requête la citation et bien placée avant la référence, mais pourtant dans ma requête des lignes 16 à 20 c'est l'inverse que j'ai demandé.
    Je ne comprends pas... Qu'en pensez-vous s'il vous plaît ?


    Nom : tritext.JPG
Affichages : 152
Taille : 87,2 Ko

    ma requête


    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
     
    def result_quote():
        """ Returns the values of the database records """
        tpl_result = Toplevel(bg="#272727")  # == Contructor Toplevel ==
        tpl_result.title(" Data display")
        tpl_result.geometry("1024x600")
        # Text area with scrollbar
        zonetext = tk.Text()
     
        """ Returns the values of the records of the Database """
        connexion = sqlite3.connect('mnesis.db')
        cursor = connexion.cursor()
        cursor.execute('SELECT * FROM tb_citation WHERE auteur=?', (rsltcmb,))
        results = ''
        for row in cursor.fetchall():
            results += '\n'.join({
                'Citation: {}'.format(row[3]),
                '\n'
                'Référence: {}'.format(row[4]),
                '\n'
            })
        author_label = Label(tpl_result, text=str(row[1]), bg="#272727", fg="#FFFFFF", font="Calibri 16 bold")
        author_label.pack()
        zonetext = ScrolledText(tpl_result, width=110, height=30, padx=10, pady=10, wrap='word')
        zonetext.pack()
        zonetext.insert("0.0", results)
        # end of the loop ---
        tpl_result.mainloop()
     
        connexion.close()
        return results

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

    Citation Envoyé par lagratteCchouette Voir le message
    Que faut-il faire pour que mes données insérées dans un widget text+scrollbar s'affichent bien dans l'ordre de tri prévu ?
    zonetext.insert("0.0", results) se contente d'afficher la chaîne de caractères results avec les retour à la ligne qu'elle contient comme le ferait print

    S'il y a problème, c'est dans la construction de cette chaine de caractères que vous avez écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       results = ''
        for row in cursor.fetchall():
            results += '\n'.join({
                'Citation: {}'.format(row[3]),
                '\n'
                'Référence: {}'.format(row[4]),
                '\n'
            })
    Donc construite à partir de ce que retourne cursor.fetchall() sans tri particulier.

    Et si ce n'est pas ce que vous vouliez...

    - W

  3. #3
    Membre régulier Avatar de lagratteCchouette
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 74
    Points
    74
    Par défaut Solution
    Merci wiztricks,
    Effectivement en revisitant la boucle cela marche beaucoup mieux.

    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
     
    def result_quote():
        """ Returns the values of the database records """
        tpl_result = Toplevel(bg="#272727")  # == Contructor Toplevel ==
        tpl_result.title(" Data display", )
        tpl_result.geometry("1024x600")
        # Text area with scrollbar
        zonetext = tk.Text()
     
        """ Returns the values of the records of the Database """
        connexion = sqlite3.connect('mnesis.db')
        cursor = connexion.cursor()
        cursor.execute('SELECT * FROM tb_citation WHERE auteur=?', (rsltcmb,))
        results = cursor.fetchall()
        print_results = ''
        for row in results:
            print_results += "\n " + "Citation : " + str(row[3]) + "\n " + "Référence : " + str(row[4]) + "\n "
     
        author_label = Label(tpl_result, text=str(row[1]), bg="#272727", fg="#FFFFFF", font="Calibri 16 bold")
        author_label.pack()
        zonetext = ScrolledText(tpl_result, width=114, height=27, padx=10, pady=10, wrap='word', font="Calibri 12")
        zonetext.pack()
        zonetext.insert("0.0", print_results)
        # end of the loop ---
        tpl_result.mainloop()

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

Discussions similaires

  1. [OL-2007] Affichage mails "non lus" dans dossier racine?
    Par valarno dans le forum Outlook
    Réponses: 2
    Dernier message: 08/03/2017, 17h25
  2. [OL-2007] Affichage mail non lu dans dossier parent
    Par Cissou69 dans le forum Outlook
    Réponses: 4
    Dernier message: 07/12/2014, 18h54
  3. Ordre LOAD DATA non supporté dans procédure
    Par issoram dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 28/10/2011, 18h14
  4. insertion et affichage d'une image dans une page web
    Par Hucpuh dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/08/2008, 12h07
  5. Data non present dans ms query mais il est dans la bd
    Par sboffin dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/09/2007, 14h44

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