Bonjour les devs,

il n' y a pas de sous-forum dédié à la présentation, mais je vais quand même faire une brève présentation ici.. Je m'appelle Fred, je viens du var, j'ai 35 ans, et j'ai débuté le python en novembre, j'ai appris en autodidacte, en me documentant avec des vidéos et pdfs, mais il me reste encore beaucoup à apprendre et à pratiquer. C'est pour cela que j'ai commencé à coder un petit programme avec lequel je compte évoluer et me faire la main sur lequel je rencontre une difficulté:

Aujourd'hui je viens vers vous car je ne trouve pas de solution à mon problème, malgré avoir passé des heures à modifier le code et à tenter de trouver d'éventuelles erreurs...

Explication de ce que doit faire mon code: Sur un fichier (ofp.py):Ouvrir une petite interface graphique (Tkinter) avec un champs et un bouton...simple.. Puis, dans une fonction, on récupère la valeur de l'entry pour l'injecter à la fin d'une url, quand on clique sur le button. Ensuite sur le main.py: Je souhaite récupérer l'Url par rappel de la fonction (qui redirigera vers une page xml qui contient des infos que par la suite j'essaierai d'extraire pour un tas de calcul et affichage dans une autre fenetre..)

Mon petit soucis: c'est que l'appel de la fonction getsimbrief() dans le main.py ne me retourne rien en console, alors que si je run l'ofp.py avec un print(ofp) à la place du return ofp dans la fonction getsimbrief() j'ai bien l'url qui s'affiche en console, comme dans le screen ci dessous.

Je code sous PyCharm.
Nom : Sans titre-1.jpg
Affichages : 150
Taille : 61,9 Ko

Les codes:
ofp.py
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
from tkinter.ttk import *
from tkinter import *
from tkinter.messagebox import *
 
 
#Fenetre principale du programme
window = Tk()
#Personnalistaion de la fenetre
window.title("Entrez votre pseudo Simbrief")
window.geometry("340x160+500+250")
window.minsize(340, 160)
window.maxsize(340, 160)
window.iconbitmap("FMSINFO.ico")
window.config(background="#376ca1")
#Texte "Entrez votre pseudo Simbrief"
ask_pseudo = Label(window, text="Entrez votre pseudo Simbrief", font=("comic sans ms", 15), bg="#376ca1", fg="white")
ask_pseudo.place(x=25, y=10)
wait = Label(window, text="Chargement de votre OFP..", font=("comic sans ms", 8), bg="#376ca1", fg="white")
#Création de la frame (boite)
frame_input = Frame(window, bg="#376ca1")
#Champs input pseudo
input_pseudo = Entry(frame_input, bg="white", font=("helvetica", 13))
input_pseudo.grid(row=1, column=1) ##Alignement du champs sur la grille (grid)
 
def getsimbrief():
  global input_pseudo
  if input_pseudo.get() == (""):
     showinfo(message=("Veuillez renseigner votre pseudo SimBrief."))
  else:
    ofp = ("http://www.simbrief.com/api/xml.fetcher.php?json1&username={}".format(input_pseudo.get()))
    # barre de progression (progressbar)
    wait.place(x=200, y=140)
    progressbar = Progressbar(window, orient="horizontal", mode="determinate")
    progressbar.place(x=220, y=120)
    progressbar.start(8)
  return ofp
 
#Bouton "Import"
import_button = Button(frame_input, text="IMPORT", font=("helvetica", 10), bg="#e22500",
                       fg="white", bd=1, padx=20, command=getsimbrief)
import_button.grid(row=2, column=1) ##Alignement du bouton sur la grille (grid)
frame_input.pack(expand=YES)
#création de l'image du logo
width = 90
height = 70
image = PhotoImage(file="FMSINFO.png").zoom(4).subsample(32)
canvas = Canvas(window, width=width, height=height, bg="#376ca1", bd=0, highlightthickness=0)
canvas.create_image(width/2, height/2, image=image)
canvas.place(x=10, y=90)
 
#Affichage de la fenetre
window.mainloop()
main.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
from ofp import getsimbrief
from xml.dom import minidom
 
print(getsimbrief())
Si vous pouvez apporter une réponse à mon problème..
J'espère que tout est bien clair, et que j'ai posté comme il fallait. Si il manque des infos ou autre, n'hesitez pas...

Cordialement, Fredo.