Partage
  • Partager sur Facebook
  • Partager sur Twitter

tkinter treeview

_tkinter.TclError: unknown option "-text"

    29 novembre 2024 à 12:58:45

    Bonjour tout le monde,

    Je voudrais créer un tableau récupérant les données de ma base de données ce qui se fait déjà en console puisque j'ai les résultats.

    Mais je voudrais les afficher dans un treeview et je ne sais pas comment m'y prendre.

    Sachant que les valeurs affichées viennent de tables différentes, et qu'elles sont liées (pour certaines par l'id utilisateur)

    j'ai fait une boucle for en debut et je récupère les résultats dans un tableau dtrv.

    Voici mon code:

    try:
        with conn.cursor() as my_conn:
            qsa_emp = my_conn.execute('''SELECT * FROM `my_db_tb_emp`''')
            rqsa_emp = my_conn.fetchall()
            if rqsa_emp:
                for row in rqsa_emp:
                   id_emp = row['emp_id']
                   nom_emp_ row['emp_nom']
                   pren_emp = row['pren_emp']
                   qsa_svce ='''SELECT `nom_service` FROM `services` SVC JOIN `my_db_tb_rel_emp_fct` CEREF ON CEREF.erp_rel_emp_fct_lieu_fct = SVC.service_id JOIN `my_db_tb_emp` CEA ON CERAF.erp_rel_emp_fct_emp = %s'''
                   my_conn.execute(qsa_svce, id_emp)
                   rqsa_svce = my_conn.fetchall()
                   if rqsa_svce:
                   for svce in rqsa_svce:
                       nom_svce = svce['nom_service']
    
    dtrv = [
    (trv.column(0, text=id_emp, anchor='center', width=50)),
    (trv.column(1, text=nom_emp, anchor="center", width=120)),
    (trv.column(2, text=prenom_emp, anchor="center", width=120)),
    (trv.column(3, text=nom_svce, anchor="center", width=120))
    (trv.column(4, text=phone, anchor="center", width=120))
    ]
    
    trv.insert('', 'end', values(dtrv[0], dtrv[1], dtrv[2], dtrv[3], dtrv[4])

    Juste dire que j'ai mis les ? là où je ne sais pas quoi mettre.

    Je viens de modifier la ligne trv.insert en :

    trv.insert('', 'end', values(id_emp, nom_emp, prenom_emp, nom_svce, phone))

    Et là, j'ai l'erreur suivante:

    trv.selection_set(10)

    Une idée????



    -
    Edité par OrionGedoc 29 novembre 2024 à 13:44:24

    • Partager sur Facebook
    • Partager sur Twitter
      29 novembre 2024 à 13:45:10

      Bonjour,

      Un exemple de tree view tout simple, reste à l'adapter à tes données :

      # -*- coding:Latin-1 -*-
      
      import tkinter as tk
      from tkinter import ttk
      from tkinter.messagebox import showinfo
      
      def item_selected(event):
          ''' Delete item or display info '''
      
          for selected_item in tree.selection():
              item = tree.item(selected_item)
              record = item['values']
      
              showinfo(title='Information', message=','.join(record))
      
      main_win = tk.Tk()
      main_win.title('Treeview demo')
      main_win.geometry('620x250')
      
      columns = ('first_name', 'last_name', 'email')
      tree = ttk.Treeview(main_win, columns=columns, show='headings')
      tree.heading('first_name', text='First Name')
      tree.heading('last_name', text='Last Name')
      tree.heading('email', text='Email')
      tree.bind('<<TreeviewSelect>>', item_selected)
      tree.grid(row=0, column=0, sticky='nsew')
      
      contacts = []
      for n in range(1, 40): contacts.append((f'first {n}', f'last {n}', f'email{n}@example.com'))
      for contact in contacts: tree.insert('', tk.END, values=contact)
      
      scrollbar = ttk.Scrollbar(main_win, orient=tk.VERTICAL, command=tree.yview)
      tree.configure(yscroll=scrollbar.set)
      scrollbar.grid(row=0, column=1, sticky='ns')
      
      main_win.mainloop()
      



      • Partager sur Facebook
      • Partager sur Twitter
        29 novembre 2024 à 14:08:19

        OrionGedoc a écrit:

        Une idée????

        Tapez "tkinter treeview" sur votre moteur de recherche préféré. Des tas d'exemples, tutos, ... à comprendre et à adapter vont remonter

        • Partager sur Facebook
        • Partager sur Twitter
          29 novembre 2024 à 14:11:13

          Phil_1857 a écrit:

          Bonjour,

          Un exemple de tree view tout simple, reste à l'adapter à tes données :

          # -*- coding:Latin-1 -*-
          
          import tkinter as tk
          from tkinter import ttk
          from tkinter.messagebox import showinfo
          
          def item_selected(event):
              ''' Delete item or display info '''
          
              for selected_item in tree.selection():
                  item = tree.item(selected_item)
                  record = item['values']
          
                  showinfo(title='Information', message=','.join(record))
          
          main_win = tk.Tk()
          main_win.title('Treeview demo')
          main_win.geometry('620x250')
          
          columns = ('first_name', 'last_name', 'email')
          tree = ttk.Treeview(main_win, columns=columns, show='headings')
          tree.heading('first_name', text='First Name')
          tree.heading('last_name', text='Last Name')
          tree.heading('email', text='Email')
          tree.bind('<<TreeviewSelect>>', item_selected)
          tree.grid(row=0, column=0, sticky='nsew')
          
          contacts = []
          for n in range(1, 40): contacts.append((f'first {n}', f'last {n}', f'email{n}@example.com'))
          for contact in contacts: tree.insert('', tk.END, values=contact)
          
          scrollbar = ttk.Scrollbar(main_win, orient=tk.VERTICAL, command=tree.yview)
          tree.configure(yscroll=scrollbar.set)
          scrollbar.grid(row=0, column=1, sticky='ns')
          
          main_win.mainloop()
          


          Merci je regarde et vois comment adapter celà



          • Partager sur Facebook
          • Partager sur Twitter

          tkinter treeview

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown