Insérer une image avec Tkinter

Résolu
willi_4185 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   -  
willi_4185 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   -
Je viens de commencer le Python et j'aimerais savoir comment intégrer une image avec Tkinter
j'ai essayer plusieurs méthode mais aucune n'ont fonctionné

Voici mon code si jamais :

# Coding by Willipro123
import tkinter
from tkinter import Label, Menu, Tk, Checkbutton



# coding:utf-8


# Ici ont viens définir les fonctions principal de notre programme qui nous
# permettront de faire les principaux calcul soit : wallet (Portefeuille) et rps (Donnée entrée par l'utilisateur)

def rps():
    rps = 0

    if __name__ == '__rps__':
        main()


def wallet():
    wallet = 5000

    if __name__ == '__wallet__':
        main()


# Tous les def pour les fonctions
# Options à propos
def propos():
    propos = tkinter.Toplevel(app)
    propos.geometry("240x112")
    propos.title("À propos")
    lb = tkinter.Label(propos, text="""Bienvenue sur mon logiciel de calcul, 
afin que vous puissiez gérer votre argent
Vous pouvez utiliser ce logiciel à des 
fin commerciale, Pour cela il suffit 
de référer la source utiliser 

By William""")
    lb.pack()
    if __name__ == '__propos__':
        main()



def wallet_Menu():
    wallet_Menu = tkinter.Toplevel(app)
    wallet_Menu.geometry("240x140")
    wallet_Menu.title("Wallet_Menu")
    wallet_Menu.resizable(width=False, height=False)
    CH = Checkbutton(wallet_Menu, text="Appuyer ici pour continuer")
    lb = tkinter.Label(wallet_Menu, text="Veuillez entrez vos informations ci-dessous")
    lb2 = tkinter.Label(wallet_Menu, text="Veuillez entrez votre Username : ")
    spr = tkinter.Entry(wallet_Menu, width=24)
    lb3 = tkinter.Label(wallet_Menu, text="Veuillez entrez votre mot de passe : ")
    spr2 = tkinter.Entry(wallet_Menu, width=24, show='*')
    lb.pack()
    lb2.pack()
    spr.pack()
    lb3.pack()
    spr2.pack()
    CH.pack()
    if __name__=='__Wallet_Menu__':
        main()






# retrait
def retrait():
    retrait = tkinter.Toplevel(app)
    retrait.geometry("240x92")
    retrait.title("Retrait")
    lb = tkinter.Label(retrait, text="Entrez le montant que vous souhaitez retirer : ")
    rps = tkinter.Entry(retrait, width=24)
    rps.get()
    lb.pack()
    rps.pack()
    if __name__ == '__retrait__':
        main()


# virement

def virement():
    virement = tkinter.Toplevel(app)
    virement.geometry("240x72")
    virement.title("Virement")
    lb = tkinter.Label(virement, text="Entrez le montant que vous souhaitez virer : ")
    rps = tkinter.Entry(virement, width=24)
    lb.pack()
    rps.pack()
    if __name__ == '__virement__':
        main()


# Ici on vas définir notre fenêtre et les principaux widget :
app = tkinter.Tk()
app.title("Wallet Menu")
mainmenu: Menu = tkinter.Menu(app)
# Ici on vas définir la grandeur de notre fenêtre afin de s'assurer quelle soit bien
# centré par rapport a l'écran

screen_x = int(app.winfo_screenwidth())
screen_y = int(app.winfo_screenheight())
window_x = 480
window_y = 240

posX = (screen_x // 2) - (window_x // 2)
posY = (screen_y // 2) - (window_y // 2)

geo = "{}x{}+{}+{}".format(window_x, window_y, posX, posY)
app.geometry(geo)

#Ici ont viens définir notre background :



# Preminer Menu


first_menu = tkinter.Menu(mainmenu, tearoff=0)
first_menu.add_command(label="Wallet", command=wallet_Menu)
first_menu.add_separator()
first_menu.add_command(label="Virement", command=virement)
first_menu.add_command(label="Retrait", command=retrait)
first_menu.add_separator()
first_menu.add_command(label="Quitter", command=app.quit)

# Second Menu


second_menu = tkinter.Menu(mainmenu, tearoff=0)
second_menu.add_command(label="À propos", command=propos)
second_menu.add_separator()

mainmenu.add_cascade(label="Wallet Option", menu=first_menu)
mainmenu.add_cascade(label="Option", menu=second_menu)

# boucle princiaple

app.config(menu=mainmenu)
app.mainloop()


Merci encore :)
A voir également:

1 réponse

trifou
 
Bonjour,

Où est le code montrant ce que tu as tenté de faire ?
Je ne vois rien dans ce que tu as écrit relatant cela.
0
willi_4185 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   3
 
oui mb ahaha tiens le voici :
# Ici on vas définir notre fenêtre et les principaux widget :
app = tkinter.Tk()
app.title("Wallet Menu")
mainmenu: Menu = tkinter.Menu(app)
# Ici on vas définir la grandeur de notre fenêtre afin de s'assurer quelle soit bien
# centré par rapport a l'écran

screen_x = int(app.winfo_screenwidth())
screen_y = int(app.winfo_screenheight())
window_x = 480
window_y = 240

posX = (screen_x // 2) - (window_x // 2)
posY = (screen_y // 2) - (window_y // 2)

geo = "{}x{}+{}+{}".format(window_x, window_y, posX, posY)
app.geometry(geo)

#Ici ont viens définir notre background 


# Preminer Menu


first_menu = tkinter.Menu(mainmenu, tearoff=0)
first_menu.add_command(label="Wallet", command=wallet_Menu)
first_menu.add_separator()
first_menu.add_command(label="Virement", command=virement)
first_menu.add_command(label="Retrait", command=retrait)
first_menu.add_separator()
first_menu.add_command(label="Quitter", command=app.quit)

# Second Menu


second_menu = tkinter.Menu(mainmenu, tearoff=0)
second_menu.add_command(label="Information de connection", command=Connection_information)
second_menu.add_separator()
second_menu.add_command(label="À propos", command=propos)
second_menu.add_separator()
mainmenu.add_cascade(label="Wallet Option", menu=first_menu)
mainmenu.add_cascade(label="Option", menu=second_menu)



# boucle princiaple

app.config(menu=mainmenu)
app.mainloop()


Sa se passe dans cette zone ci-dessous
j'ai regardé sur le forum de Tkinter pour l'insertion et leur méthode ne fonctionne qu'avec des .gif ce qui n'est pas mon cas, j'ai par la suite chercher sur développez.net mais je n'ai trouver que des insertion d'image pour python sous 2x et non pas 3x comme ce que je cherche
0
trifou > willi_4185 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Le module tkinter de python3 est à peu près identique que pour python2.
Et je ne vois toujours pas ce que tu as tenté de faire.

Afficher une image avec tkinter c'est tout au plus 10 lignes de code, les formats supportés sont gif et png.

Donc montre ce que tu as tenté de faire.
0
willi_4185 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   3 > trifou
 
aaaaaa png aussi... mon image était en jpg, Merci j'ai refait la manip fais avant en changant le format pour du png :)

Voici ce que j'essayais de faire et pourtant se ne marche toujours pas :

#Définir le background : 

photo = PhotoImage(file="wallet.png")

canvas = Canvas(fenetre,width=480, height=240)
canvas.create_image(0, 0, anchor=NW, image=photo)
canvas.pack()


Aussi j'ai eu un mini-problème pour faire une frame, donc je suis quasi sur que le code est bon :

#fênetre princiapl
#Creer la frame d'abonnement à ma chaîne YouTube

frame = Frame(app, bg='#41B77F')
label_sub = Label(frame, text="Bienvenue sur votre wallet personnalisé !", font=('Courrier', 18), bg='#41B77F', fg='white')
label_sub2 = Label(frame, text="Dedevelop by Willi", font=('Courrier', 18), bg='#41B77F', fg='white' )
yt = Button(frame, text="Abonne-toi", font=('Courrier', 18), bg='white', fg='#41B77F')
label_sub.pack()
label_sub2.pack()
yt.pack()
frame.pack(expand=YES)


L'erreur serait au niveau du YES qui ne serait pas défini mais puisque c'est un param ? m'semble que j'ai pas a le définir

Merci encore de ton aide !
0
trifou > willi_4185 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
> Voici ce que j'essayais de faire et pourtant se ne marche toujours pas

Une erreur est générée ?
Plus de précisions sur ce que tu obtiens est nécessaire, car sans ça, difficile de t'aider.

> L'erreur serait au niveau du YES qui ne serait pas défini mais puisque c'est un param ? m'semble que j'ai pas a le définir

YES n'est pas une constante de tkinter, expand doit être un booléen.

Tu peux voir cela dans la doc tkinter, ou directement dans un interpréteur python, importer tkinter et faire un simple
help(tkinter.Pack)


expand=bool - expand widget if parent size grows
0
willi_4185 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   3 > trifou
 
ah d'accord merci de l'info,j'ai pourtant vue lors d'un tuto que l'ont pouvait mettre
X.pack(expend=YES)

mais, merci de l'info !

Pour l'erreur générée la voici :

Exception has occurred: NameError
name 'PhotoImage' is not defined
File "C:\Users\willi\Desktop\Dév\Code\Wallet_Menu\Wallet_Menu", line 144, in <module>
photo = PhotoImage(file="ma_photo.png")

Merci encore ! pour ton aide.

Même chose pour le YES :

Exception has occurred: NameError
name 'YES' is not defined
File "C:\Users\willi\Desktop\Dév\Code\Wallet_Menu\Wallet_Menu", line 156, in <module>
frame.pack(expand=YES)
0

Discussions similaires