Utiliser la fonction copier coller couper dans un champ text.insert

Fermé
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 27 févr. 2021 à 15:42
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 28 févr. 2021 à 23:47
Bonjour,

Je suis sur python 2.7.17 en Tkinter.
J'ai effectuer un test pour effectuer un copier coller couper.
Cela fonctionne uniquement avec les entry.
Je n'arrive pas a faire un copier coller couper depuis un champs Text.
ici T2 avec insert

Pouvez-vous m'aider ?
Merci d'avance pour votre aides et conseils.

#! /usr/bin/python
#-*-coding: utf-8 -*-

# python $HOME/Langages/python/2.7.6/Cours/test-couper-copier-coller-entry_02.py

#----------------------------------------------------------------------------------------
# LIBRAIRIES
#----------------------------------------------------------------------------------------
from Tkinter import *
from tkMessageBox import *
import Tkinter as tk
import Tkinter
import tkMessageBox

#----------------------------------------------------------------------------------------
# FONCTIONS CODE
#----------------------------------------------------------------------------------------
def creer_fenetre_principale():
global fp #fp , e1, e2
fp=Tk()
#fp = tk.Tk()
fp.title("test Couper Couper coller dans un champs de saisi entry ")

def creer_frames():
global Frame0, Frame1, Frame2, Frame3, Frame4
Frame0 = Frame(fp, borderwidth=2,relief=GROOVE, width=300, height=650) #FLAT
Frame0.grid(row=0, column=0)

Frame1 = Frame(Frame0, borderwidth=2,relief=GROOVE)#.grid(row=0) #RAISED #300x650
Frame1.grid(row=1, column=0)

Frame2 = Frame(Frame0, borderwidth=0,relief=GROOVE)#.grid(row=0)
Frame2.grid(row=2, column=0)

Frame3 = Frame(Frame0, borderwidth=0,relief=GROOVE)#.grid(row=0)
Frame3.grid(row=3, column=0)

Frame4 = Frame(Frame0, borderwidth=0,relief=GROOVE)#.grid(row=0)
Frame4.grid(row=4, column=0)



def fenetre():
Label(Frame1, text="Nom").grid(row=0)
Label(Frame1, text="Prénom").grid(row=1)
Label(Frame2, text="Texte").grid(row=0)

e1 = Entry(Frame1)
e2 = Entry(Frame1)

e1.insert(10, "Dupres")
e2.insert(10, "Charles Henry")

#e1.bind("<Button-3><ButtonRelease-3>", active_menu)
e1.bind_class("Entry", "<Button-3><ButtonRelease-3>", menu_souris)
e2.bind_class("Entry", "<Button-3><ButtonRelease-3>", menu_souris)
#T2.bind_class("Entry", "<Button-3><ButtonRelease-3>", menu_souris)

e1.grid(row=0, column=1)
e2.grid(row=1, column=1)

S = Scrollbar(Frame3)
T2 = Text(Frame3, height=8, width=27) #height=5, width=50 8, width=45
#T2.insert(INSERT, "Bonjour.....")
MESSAGE = "Ecrire votre texte ici"
T2.insert(END, MESSAGE)
T2.bind_class("Entry", "<Button-3><ButtonRelease-3>", menu_souris)
S.pack(side=RIGHT, fill=Y)
T2.pack(side=LEFT, fill=Y)
S.config(command=T2.yview)
T2.config(yscrollcommand=S.set)
T2.pack(side = LEFT)

Button(Frame4, text='Quitter', command=fp.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(Frame4, text='Valider', command=valider_entry).grid(row=3, column=1, sticky=W, pady=4)

def test():
print "MESSAGE : ",MESSAGE
T2.bind_class("Entry", "<Button-3><ButtonRelease-3>", menu_souris)
T2.tag_add("here", "1.0", "1.4")
T2.tag_config("start", background="black", foreground="green")
T2.delete(1.0,"end")
T2.insert(1.0, MESSAGE)

def creer_menu_couper_copier_coller():
global creer_menu_souris
creer_menu_souris(fp) #<---- Couper-Copier-Coller

def message_info(titre, message):
tkMessageBox.showinfo(titre, message)

def valider_entry():
print("Nom : %s\nPrenom : %s" % (e1.get(), e2.get()))
titre = "Informations"
message = "Nom : "+e1.get()+"\n"+"Prénom : "+e2.get()
tkMessageBox.showinfo(titre, message)


def coller():
print "coller"
texte = fp.clipboard_get() # récupère le contenu du presse-papier
print "coller : texte : ", texte
#e2.config(state=NORMAL)
e2.delete(0,END)
e2.insert(END, str(texte))
#e2.config(state = DISABLED)

def creer_menu_souris(w):
global options_du_menu_souris
options_du_menu_souris = Menu(w, tearoff=0)
options_du_menu_souris.add_command(label="Couper")
options_du_menu_souris.add_command(label="Copier")
options_du_menu_souris.add_command(label="Coller")

def menu_souris(e):
w = e.widget
options_du_menu_souris.entryconfigure("Couper",command=lambda: w.event_generate("<<Cut>>"))
options_du_menu_souris.entryconfigure("Copier",command=lambda: w.event_generate("<<Copy>>"))
options_du_menu_souris.entryconfigure("Coller",command=lambda: w.event_generate("<<Paste>>"))
#options_du_menu_souris.entryconfigure("Coller",command=lambda x=e1: coller(x))
options_du_menu_souris.tk.call("tk_popup", options_du_menu_souris, e.x_root, e.y_root)

#Menu Bar
def menu_bar():
menubar = Menu(fp)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="New", command=None)
filemenu.add_command(label="Open", command=None)
filemenu.add_command(label="Save", command=None)
filemenu.add_command(label="Save as...", command=None)
filemenu.add_command(label="Close", command=None)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=fp.quit)
menubar.add_cascade(label="File", menu=filemenu)

editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=None)
editmenu.add_separator()
editmenu.add_command(label="Couper", command=lambda: w.event_generate("<<Cut>>"))
editmenu.add_command(label="Copier", command=lambda: w.event_generate("<<Copy>>"))
editmenu.add_command(label="Coller", command=lambda: w.event_generate("<<Paste>>"))
editmenu.add_command(label="Select All", command=None)
menubar.add_cascade(label="Edit", menu=editmenu)

helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="Help Index", command=None)
helpmenu.add_command(label="About...", command=None)
menubar.add_cascade(label="Help", menu=None)

fp.config(menu=menubar)

def executer_fonctions():
creer_fenetre_principale()
creer_frames()
fenetre()
creer_menu_couper_copier_coller()
menu_bar()

executer_fonctions()

fp.mainloop()



Configuration: Linux / Firefox 86.0
A voir également:

4 réponses

Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
27 févr. 2021 à 16:50
Bonjour,

merci de copier/coller ici ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :

def test():
    print('test')

test()
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
Modifié le 27 févr. 2021 à 17:07
le code avec les balises python du forum.
Merci.

#! /usr/bin/python
#-*-coding: utf-8 -*-

# python $HOME/Langages/python/2.7.6/Cours/test-couper-copier-coller-entry_02.py 

#----------------------------------------------------------------------------------------
#                                    LIBRAIRIES                                       
#----------------------------------------------------------------------------------------
from Tkinter import *
from tkMessageBox import *
import Tkinter as tk
import Tkinter 
import tkMessageBox

#----------------------------------------------------------------------------------------
#                                    FONCTIONS CODE                                      
#----------------------------------------------------------------------------------------
def creer_fenetre_principale():
    global fp #fp , e1, e2
    fp=Tk()
    #fp = tk.Tk()
    fp.title("test Couper Couper coller dans un champs de saisi entry ") 
    
def creer_frames():
    global Frame0, Frame1, Frame2, Frame3, Frame4
    Frame0 = Frame(fp, borderwidth=2,relief=GROOVE, width=300, height=650) #FLAT
    Frame0.grid(row=0, column=0)
    
    Frame1 = Frame(Frame0, borderwidth=2,relief=GROOVE)#.grid(row=0) #RAISED #300x650
    Frame1.grid(row=1, column=0)
    
    Frame2 = Frame(Frame0, borderwidth=0,relief=GROOVE)#.grid(row=0)
    Frame2.grid(row=2, column=0)
    
    Frame3 = Frame(Frame0, borderwidth=0,relief=GROOVE)#.grid(row=0)
    Frame3.grid(row=3, column=0)
    
    Frame4 = Frame(Frame0, borderwidth=0,relief=GROOVE)#.grid(row=0)
    Frame4.grid(row=4, column=0)


    
def fenetre():
    Label(Frame1, text="Nom").grid(row=0)
    Label(Frame1, text="Prénom").grid(row=1)
    Label(Frame2, text="Texte").grid(row=0)

    e1 = Entry(Frame1)
    e2 = Entry(Frame1)
    
    e1.insert(10, "Dupres")
    e2.insert(10, "Charles Henry")
    
    #e1.bind("<Button-3><ButtonRelease-3>", active_menu)
    e1.bind_class("Entry", "<Button-3><ButtonRelease-3>", menu_souris)
    e2.bind_class("Entry", "<Button-3><ButtonRelease-3>", menu_souris)
    #T2.bind_class("Entry", "<Button-3><ButtonRelease-3>", menu_souris)

    e1.grid(row=0, column=1)
    e2.grid(row=1, column=1)
    
    S = Scrollbar(Frame3)
    T2 = Text(Frame3, height=8, width=27) #height=5, width=50 8, width=45
    #T2.insert(INSERT, "Bonjour.....")
    MESSAGE = "Ecrire votre texte ici"
    T2.insert(END, MESSAGE)
    T2.bind_class("Entry", "<Button-3><ButtonRelease-3>", menu_souris)
    S.pack(side=RIGHT, fill=Y)
    T2.pack(side=LEFT, fill=Y)
    S.config(command=T2.yview)
    T2.config(yscrollcommand=S.set)
    T2.pack(side = LEFT)

    Button(Frame4, text='Quitter', command=fp.quit).grid(row=3, column=0, sticky=W, pady=4)
    Button(Frame4, text='Valider', command=valider_entry).grid(row=3, column=1, sticky=W, pady=4)
    
def test():
    print "MESSAGE : ",MESSAGE
    T2.bind_class("Entry", "<Button-3><ButtonRelease-3>", menu_souris)
    T2.tag_add("here", "1.0", "1.4")
    T2.tag_config("start", background="black", foreground="green")
    T2.delete(1.0,"end")
    T2.insert(1.0, MESSAGE)
    
def creer_menu_couper_copier_coller():  
    global creer_menu_souris
    creer_menu_souris(fp) #<---- Couper-Copier-Coller
    
def message_info(titre, message):    
    tkMessageBox.showinfo(titre, message)    

def valider_entry():
    print("Nom : %s\nPrenom : %s" % (e1.get(), e2.get()))
    titre = "Informations"
    message = "Nom : "+e1.get()+"\n"+"Prénom : "+e2.get()
    tkMessageBox.showinfo(titre, message)

    
def coller():
    print "coller" 
    texte = fp.clipboard_get()  # récupère le contenu du presse-papier
    print "coller : texte : ", texte
    #e2.config(state=NORMAL)
    e2.delete(0,END)
    e2.insert(END, str(texte))
    #e2.config(state = DISABLED)

def creer_menu_souris(w):
    global options_du_menu_souris
    options_du_menu_souris = Menu(w, tearoff=0)
    options_du_menu_souris.add_command(label="Couper")
    options_du_menu_souris.add_command(label="Copier")
    options_du_menu_souris.add_command(label="Coller")
    
def menu_souris(e):
    w = e.widget
    options_du_menu_souris.entryconfigure("Couper",command=lambda: w.event_generate("<<Cut>>"))
    options_du_menu_souris.entryconfigure("Copier",command=lambda: w.event_generate("<<Copy>>"))
    options_du_menu_souris.entryconfigure("Coller",command=lambda: w.event_generate("<<Paste>>"))
    #options_du_menu_souris.entryconfigure("Coller",command=lambda x=e1: coller(x))
    options_du_menu_souris.tk.call("tk_popup", options_du_menu_souris, e.x_root, e.y_root)
    
#Menu Bar
def menu_bar():
    menubar = Menu(fp)
    filemenu = Menu(menubar, tearoff=0)
    filemenu.add_command(label="New", command=None)
    filemenu.add_command(label="Open", command=None)
    filemenu.add_command(label="Save", command=None)
    filemenu.add_command(label="Save as...", command=None)
    filemenu.add_command(label="Close", command=None)
    filemenu.add_separator()
    filemenu.add_command(label="Exit", command=fp.quit)
    menubar.add_cascade(label="File", menu=filemenu)

    editmenu = Menu(menubar, tearoff=0)
    editmenu.add_command(label="Undo", command=None)
    editmenu.add_separator()
    editmenu.add_command(label="Couper", command=lambda: w.event_generate("<<Cut>>"))
    editmenu.add_command(label="Copier", command=lambda: w.event_generate("<<Copy>>"))
    editmenu.add_command(label="Coller", command=lambda: w.event_generate("<<Paste>>"))
    editmenu.add_command(label="Select All", command=None)
    menubar.add_cascade(label="Edit", menu=editmenu)

    helpmenu = Menu(menubar, tearoff=0)
    helpmenu.add_command(label="Help Index", command=None)
    helpmenu.add_command(label="About...", command=None)
    menubar.add_cascade(label="Help", menu=None)

    fp.config(menu=menubar)

def executer_fonctions():
    creer_fenetre_principale()
    creer_frames()
    fenetre()
    creer_menu_couper_copier_coller()
    menu_bar()

executer_fonctions()

fp.mainloop()
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 27 févr. 2021 à 17:36
Ces 2 lignes sont inutiles:

import tkinter as tk
import tkinter

(il y a déjà from tkinter import *)

Comment fait tu apparaitre le menu souris, et il sert à quoi, vu qu'il y a déjà couper/copier/coller dans le menu Edit ?

Et pour faire copier/coller dans les entry, tu fais comment ?

La fonction test n'est appelée nulle part ...
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
28 févr. 2021 à 23:47
Bonsoir,

Voila la solution que j'ai trouvé pour effectuer le couper / copier / coller / effacer / Tout sélectionner qui coîncide avec la souris et la barre de menu depuis un entry et un Text.

si vous avez une idée pour réduire le tout ?
merci d'avance.

#! /usr/bin/python
#-*-coding: utf-8 -*-

# python $HOME/Langages/python/2.7/Cours/test-couper-copier-coller-effacer-ts_entry-text.py 

#----------------------------------------------------------------------------------------
#                                    LIBRAIRIES                                       
#----------------------------------------------------------------------------------------
from Tkinter import *
from tkMessageBox import *
#import Tkinter as tk
#import Tkinter 
import tkMessageBox

#----------------------------------------------------------------------------------------
#                                    FONCTIONS CODE                                      
#----------------------------------------------------------------------------------------

def creer_fenetre_principale():
    global fp #fp , e1, e2
    fp=Tk()
    fp.title("test Couper Couper coller dans un champs de saisi entry ") 
    
    
def creer_frames():
    global Frame0, Frame1, Frame2, Frame3, Frame4
    Frame0 = Frame(fp, borderwidth=2,relief=GROOVE, width=300, height=650) #FLAT
    Frame0.grid(row=0, column=0)
    
    Frame1 = Frame(Frame0, borderwidth=2,relief=GROOVE)#.grid(row=0) #RAISED #300x650
    Frame1.grid(row=1, column=0)
    
    Frame2 = Frame(Frame0, borderwidth=0,relief=GROOVE)#.grid(row=0)
    Frame2.grid(row=2, column=0)
    
    Frame3 = Frame(Frame0, borderwidth=0,relief=GROOVE)#.grid(row=0)
    Frame3.grid(row=3, column=0)
    
    Frame4 = Frame(Frame0, borderwidth=0,relief=GROOVE)#.grid(row=0)
    Frame4.grid(row=4, column=0)
    
def fenetre():
    global T2
    Label(Frame1, text="Nom").grid(row=0)
    Label(Frame1, text="Prénom").grid(row=1)
    Label(Frame2, text="Texte").grid(row=0)

    e1 = Entry(Frame1)
    e2 = Entry(Frame1)
    
    e1.insert(10, "Dupres")
    e2.insert(10, "Charles Henry")
    
    e1.bind_class("Entry", "<Button-3><ButtonRelease-3>", menu_souris)
    e1.bind_class("Entry","<Button-1><ButtonRelease-1>", menu_barre_Entry) 

    e1.grid(row=0, column=1)
    e2.grid(row=1, column=1)
    
    S = Scrollbar(Frame3)
    T2 = Text(Frame3, height=8, width=27) 
    MESSAGE = "Ecrire votre texte ici"
    T2.insert(END, MESSAGE)

    T2.bind_class("Text", "<Button-3><ButtonRelease-3>", menu_souris_Text)
    T2.bind_class("Text", "<Button-1><ButtonRelease-1>", menu_barre_Text) 
    S.pack(side=RIGHT, fill=Y)
    T2.pack(side=LEFT, fill=Y)
    S.config(command=T2.yview)
    T2.config(yscrollcommand=S.set)
    T2.pack(side = LEFT)

    Button(Frame4, text='Quitter', command=fp.quit).grid(row=3, column=0, sticky=W, pady=4)
    Button(Frame4, text='Valider', command=valider_entry).grid(row=3, column=1, sticky=W, pady=4)
    
#----------------------------------------------------------------------------------------
#                                    FONCTIONS:  BARRE DE MENU Entry                                     
#----------------------------------------------------------------------------------------    
def menu_barre_Text(event):
    print "menu_barre_Text"
    
    print "event : ",event
    print "event.x_root, event.y_root : ",event.x_root, event.y_root 
 
    liste_event = []
    liste_event.append("text")
    creer_menu_x = fp
    w = creer_menu_x
    options_du_menu_x = event.widget 
    options_du_menu_x2  = event 
    print "options_du_menu_x : ", options_du_menu_x
    print "options_du_menu_x2 : ", options_du_menu_x2
    global options_du_menu_x2, options_du_menu_x, w, liste_event
    
def menu_barre_Entry(event):
    print "menu_barre_Entry"
  
    print "event : ",event
    print "event.x_root, event.y_root : ",event.x_root, event.y_root 
    
    liste_event = []
    liste_event.append("entry")
    options_du_menu_x = event.widget #Menu(w, tearoff=0)
    options_du_menu_x2  = event #Menu(w, tearoff=0)
    print "options_du_menu_x : ", options_du_menu_x
    global options_du_menu_x, options_du_menu_x2, w, liste_event
   
def menu_barre_couper(options_du_menu_x, options_du_menu_x2):
    print "menu_barre_couper"
    options_du_menu_x.event_generate("<<Cut>>")
  
    
def menu_barre_copier(options_du_menu_x, options_du_menu_x2):
    print "menu_barre_copier"
    options_du_menu_x.event_generate("<<Copy>>")    
    
def menu_barre_coller(options_du_menu_x, options_du_menu_x2):
    print "menu_barre_coller"
    options_du_menu_x.insert(options_du_menu_x.event_generate("<<Paste>>"))

    
def menu_barre_effacer(options_du_menu_x, options_du_menu_x2):
    print "menu_barre_effacer"
    print "options_du_menu_x : ",options_du_menu_x
    print "options_du_menu_x2 : ",options_du_menu_x2
    print "w : ",w
    print "fp : ",fp
    if liste_event[0] == "entry":
        print("ok Entry")
        options_du_menu_x.delete(0,END)
    else:
        print("no Text")
        options_du_menu_x.delete("1.0","end")
 
def menu_barre_selectionner_tout(options_du_menu_x, options_du_menu_x2):
    print "menu_barre_selectionner_tout"

    if liste_event[0] == "entry":
        print("ok Entry")
        options_du_menu_x.select_range(0, 'end')
    else:
        print("no Text")
        options_du_menu_x.tag_add('sel', '1.0','end-1c')
        return "break"       

    
def select_all(event):
    textbox.tag_add(SEL, "1.0", END)
    textbox.mark_set(INSERT, "1.0")
    textbox.see(INSERT)
    return 'break'    
    
def message_info(titre, message):    
    tkMessageBox.showinfo(titre, message)    

def valider_entry():
    print("Nom : %s\nPrenom : %s" % (e1.get(), e2.get()))
    titre = "Informations"
    message = "Nom : "+e1.get()+"\n"+"Prénom : "+e2.get()
    tkMessageBox.showinfo(titre, message)


#----------------------------------------------------------------------------------------
#                                    FONCTIONS MENU SOURIS Entry                                     
#----------------------------------------------------------------------------------------

def select_tout(e):
    print "select_tout"
    e.select_range(0, 'end')
   
def couper(w):
    print "couper" 
    w.event_generate("<<Cut>>")   
    
def copier(w):
    print "copier" 
    w.event_generate("<<Copy>>")
    
def coller(w):
    print "coller" 
    w.insert(w.event_generate("<<Paste>>"))
    

def effacer(w):
    w.delete(0,END)
    
def creer_menu_couper_copier_coller():  
    global creer_menu_souris
    creer_menu_souris(fp) #<---- Couper-Copier-Coller    
    
def creer_menu_souris(w):
    global options_du_menu_souris
    options_du_menu_souris = Menu(w, tearoff=0)
    options_du_menu_souris.add_command(label="Couper")
    options_du_menu_souris.add_command(label="Copier")
    options_du_menu_souris.add_command(label="Coller")
    options_du_menu_souris.add_command(label="Effacer")
    options_du_menu_souris.add_command(label="Sélectionner tout")
    
def menu_souris(e):
    w = e.widget
    options_du_menu_souris.entryconfigure("Couper",command=lambda: couper(w))
    options_du_menu_souris.entryconfigure("Copier",command=lambda x=w : copier(x))
    options_du_menu_souris.entryconfigure("Coller",command=lambda x=w : coller(x))
    options_du_menu_souris.entryconfigure("Effacer",command=lambda x=w : effacer(x))
    options_du_menu_souris.entryconfigure("Sélectionner tout", command=lambda x=w : select_tout(x))
    options_du_menu_souris.tk.call("tk_popup", options_du_menu_souris, e.x_root, e.y_root)
   
    
#----------------------------------------------------------------------------------------
#                                    FONCTIONS MENU SOURIS Text                                     
#----------------------------------------------------------------------------------------
    
def couper_Text(w):
    print "couper_Text"  
    w.event_generate("<<Cut>>")
    
def copier_Text(w):
    print "copier_Text"  
    w.event_generate("<<Copy>>")
 
def coller_Text(w):
    print "coller_Text"  
    w.event_generate("<<Paste>>") 
    
def selectionner_tout_Text(event):
    print "selectionner_tout_Text"
    T2.tag_add('sel', '1.0','end-1c')
    return "break"       

def effacer_Text(event):
    print "effacer_Text"
    T2.delete("1.0","end")
    
def creer_menu_couper_copier_coller_Text():  
    global creer_menu_souris_Text
    creer_menu_souris_Text(fp) #<---- Couper-Copier-Coller  
    
def creer_menu_souris_Text(w):
    global options_du_menu_souris_Text
    options_du_menu_souris_Text = Menu(w, tearoff=0)
    options_du_menu_souris_Text.add_command(label="Couper x", command=couper)
    options_du_menu_souris_Text.add_command(label="Copier", command=copier)
    options_du_menu_souris_Text.add_command(label="Coller", command=coller)
    options_du_menu_souris_Text.add_command(label="Effacer", command=effacer)
    options_du_menu_souris_Text.add_command(label="Sélectionner tout", command=select_all)       
    
def menu_souris_Text(e):
    print "menu_souris_Text"
    global w
    w = e.widget
    options_du_menu_souris.entryconfigure("Couper",command=lambda: couper_Text(w))
    options_du_menu_souris.entryconfigure("Copier",command=lambda: copier_Text(w))
    options_du_menu_souris.entryconfigure("Coller",command=lambda: coller_Text(w))
    options_du_menu_souris.entryconfigure("Sélectionner tout",command=lambda: selectionner_tout_Text(w))
    options_du_menu_souris.entryconfigure("Effacer",command=lambda: effacer_Text(w))
    options_du_menu_souris.tk.call("tk_popup", options_du_menu_souris, e.x_root, e.y_root)
    
#----------------------------------------------------------------------------------------
#                                    FONCTIONS : BARRE DE MENU                                      
#----------------------------------------------------------------------------------------

def menu_bar():
    menubar = Menu(fp)
    filemenu = Menu(menubar, tearoff=0)
    filemenu.add_command(label="New", command=None)
    filemenu.add_command(label="Open", command=None)
    filemenu.add_command(label="Save", command=None)
    filemenu.add_command(label="Save as...", command=None)
    filemenu.add_command(label="Close", command=None)
    filemenu.add_separator()
    filemenu.add_command(label="Exit", command=fp.quit)
    menubar.add_cascade(label="File", menu=filemenu)

    editmenu = Menu(menubar, tearoff=0)
    editmenu.add_command(label="Undo", command=None)
    editmenu.add_separator()
   
    editmenu.add_command(label="Couper", command=lambda: menu_barre_couper(options_du_menu_x, options_du_menu_x2))
    editmenu.add_command(label="Copier", command=lambda: menu_barre_copier(options_du_menu_x, options_du_menu_x2))
    editmenu.add_command(label="Coller", command=lambda: menu_barre_coller(options_du_menu_x, options_du_menu_x2))
    editmenu.add_command(label="Effacer", command=lambda: menu_barre_effacer(options_du_menu_x, options_du_menu_x2))
    editmenu.add_command(label="Sélectionner tout", command=lambda: menu_barre_selectionner_tout(options_du_menu_x, options_du_menu_x2))
    
    menubar.add_cascade(label="Edit", menu=editmenu)

    helpmenu = Menu(menubar, tearoff=0)
    helpmenu.add_command(label="Help Index", command=None)
    helpmenu.add_command(label="About...", command=None)
    menubar.add_cascade(label="Help", menu=None)

    fp.config(menu=menubar)
    
def executer_fonctions():
    creer_fenetre_principale()
    creer_frames()
    fenetre()
    creer_menu_couper_copier_coller()
    creer_menu_couper_copier_coller_Text()
    menu_bar()

    
executer_fonctions()

fp.mainloop()
0