Bonjour à tous,
J'ai passé pas mal de temps à comprendre par moi-même, mais j'avoue que là je patine.
Pourriez-vous s'il vous plaît m'aider à comprendre la logique des combobox et des fonctions.
Je crée une BdD de citations tb_auteur et tb_citation. Une fois que j'ai créé les auteurs, je veux pouvoir en récupérant ceux-ci renseigner mon formulaire citation afin d'assigner à un même auteur plusieurs citations: Exemple Socrate a dit... pleins de choses.
En utilisant la fonction def cmb_nomsauteur(): afi de nourrir ma combobox... je n'arrive pas à récupérer les données de ma table afin de nourrir cette liste et ensuite il me faudra récupérer par get() la valeur ...
J'ai le message d'erreur suivant:
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 # -*- coding: utf-8 -*- from tkinter import * import tkinter as tk from tkinter import font from PIL import Image, ImageTk # module image def cmb_nomsauteur(): conn = sqlite3.connect("mnesis.db") # Spécifier le nom de votre base de données dans le même répertoire. noms = [] # Création d'une liste afin de récupérer les noms des auteurs for row in conn.execute('select auteur_auteur from tb_auteur;'): # Boucle afin de lire la database data = row[0]; noms.append(data) #Valeur de la variable contenant le contenu de la requête listenomsauteurSelect = StringVar() result = (noms) listenomsauteur = Combobox(fenetre_pce, textvariable = listenomsauteurSelect, values = result, state = 'readonly') fenetre_pce =Tk() # Fenêtre prinicpale labelCitation_Auteur = Label(fenetre_pce, text="Auteur",bg='lightblue3', font=("Arial", 12,"bold")) labelCitation_Auteur.place(x=30,y=38) cmb_nomsauteur.place(x=30,y=65) fenetre_pce.mainloop()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 [Running] python -u "c:\chemin\menesis_database_projet-03\frontend_test cmb.py" Traceback (most recent call last): File "c:\chemin\menesis_database_projet-03\frontend_test cmb.py", line 22, in <module> cmb_nomsauteur.place(x=30,y=65) AttributeError: 'function' object has no attribute 'place'
Mais cela marche avec cela :
merci beaucoup par avance pour vos lumières...
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 # -*- coding: utf-8 -*- from tkinter import * from tkinter.ttk import * import sqlite3 fenetre_pce = Tk() # Le constructeur #======================================================================= conn = sqlite3.connect("mnesis.db") # Spécifier le nom de votre base de données dans le même répertoire. noms = [] # Création d'une liste afin de récupérer les noms des auteurs for row in conn.execute('select auteur_auteur from tb_auteur;'): # Boucle afin de lire la database data = row[0]; noms.append(data) #Valeur de la variable contenant le contenu de la requête listenomsauteurSelect = StringVar() result = (noms) listenomsauteur = listecategorie = Combobox(fenetre_pce, textvariable = listenomsauteurSelect, values = result, state = 'readonly') #======================================================================= listenomsauteur.pack() fenetre_pce.geometry("300x300+120+120") fenetre_pce.mainloop()
Partager