Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer une fenetre lors d'un clic sur le menu

Python3 et tkinter

    18 mai 2018 à 13:03:59

    Voilà, tout est dans le titre !

    Je voudrais pouvoir ouvrir une nouvelle fenêtre lorsque ce que je clique sur "nouveau document sur le menu". Un peu comme LibreOffice.

    -
    Edité par SlideHub 19 mai 2018 à 11:53:28

    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2018 à 13:13:18

      Un code existant ? Un problème rencontré ? Des recherches effectuées ? Une librairie utilisée ?
      • Partager sur Facebook
      • Partager sur Twitter
      OpenClassrooms retire tellement d'aiguilles de nos pieds qu'on pourrait ne plus trouver le foin de notre botte :)
        19 mai 2018 à 11:51:50

        Bonjour,

        J'utilise avec Linux python3 et tkinter. Pour être plus clair, j'ai ce programme très simple :

        # /usr/bin/python3.5
        # -*-coding:Utf-8 -*
        
        from tkinter import *
        from tkinter.messagebox import *
        import tkinter.filedialog
        import webbrowser
        
        root = Tk()
        
        root['bg']='white'
        
        # --------------------------------------------------------------------------------------------------------------------------------------------
        
        # frame 1
        Frame1 = Frame(root, borderwidth=2, relief=GROOVE)
        Frame1.pack(side=LEFT, padx=0, pady=0)
        
        
        new_document=Button(Frame1 , text="Nouveau document")
        new_document.pack()
        
        # --------------------------------------------------------------------------------------------------------
        # Les menus
        # --------------------------------------------------------------------------------------------------------
        
        menubar = Menu(root)
        
        menu1 = Menu(menubar, tearoff=0)
        menu1.add_command(label="Créer", command=menu1)
        menu1.add_command(label="Ouvrir", command=menu1)
        menu1.add_command(label="Editer", command=menu1)
        menu1.add_separator()
        menu1.add_command(label="Quitter", command=menu1)
        menubar.add_cascade(label="Fichier", menu=menu1)
        
        menu2 = Menu(menubar, tearoff=0)
        menu2.add_command(label="Couper", command=menu2)
        menu2.add_command(label="Copier", command=menu2)
        menu2.add_command(label="Coller", command=menu2)
        menubar.add_cascade(label="Editer", menu=menu2)
        
        menu3 = Menu(menubar, tearoff=0)
        menu3.add_command(label="A propos", command=menu3)
        menubar.add_cascade(label="Aide", menu=menu3)
        
        root.config(menu=menubar)
        
        
        # --------------------------------------------------------------------------------------------------------
        # Préférences du programme
        # --------------------------------------------------------------------------------------------------------
        
        root.geometry('600x1000')
        root.title ("Test")
        root.mainloop()


        Et je voudrais que quand on clique sur "Nouveau document", que s'ouvre ce programme :

        # /usr/bin/python3.5
        # -*-coding:Utf-8 -*
         
        from tkinter import *
        import os
        import tkinter.messagebox
        import tkinter.filedialog
         
        def ouvrir():
        	filename = tkinter.filedialog.askopenfilename(title="Ouvrir votre document",filetypes=[('txt files','.txt'),('all files','.*')])
        	fichier = open(filename, "r")
         
        def sauvegarder():
            if (entree.get() == "Aucun fichier"):
                entree.delete(0, END)
                a="Aucun fichier"
                entree.insert(0,str(a))
            elif (entree.get() != ''):
                open(entree.get(), "w").write(text.get(0., END))
            else:
                entree.delete(0, END)
                a="Aucun fichier"
                entree.insert(0,str(a))
         
        fen = Tk()
        fen.title('Editeur de texte')
         
        fileMenu = Menubutton(fen, text ='Fichier')
        fileMenu.grid(row =0, column =0)
        # Partie "déroulante" :
        me1 = Menu(fileMenu)
        me1.add_command(label ='Ouvrir', underline =0, command = ouvrir)
        me1.add_command(label ='Sauvegarder', underline =0, command = sauvegarder)
        me1.add_command(label ='Terminer', underline =0, command = fen.quit)
        # Intégration du menu :
        fileMenu.configure(menu = me1)
         
        text = Text()
        text.grid(row=1, column=0, columnspan=25, sticky=N, padx=2, pady=2)
         
        fen.mainloop()

        Soit dans une nouvelle fenètre, soit en remplaçant l'ancienne. Un peu comme quand on clique sur "Nouveau document" sur LibreOffice.

        Merci d'avance.

        • Partager sur Facebook
        • Partager sur Twitter
          22 mai 2018 à 10:36:04

          Ca fonctionne comme ça :)
          • Partager sur Facebook
          • Partager sur Twitter
          OpenClassrooms retire tellement d'aiguilles de nos pieds qu'on pourrait ne plus trouver le foin de notre botte :)
            23 mai 2018 à 14:47:52

            Merci de m'avoir répondu ! Je vais regarder ton lien. :D

            • Partager sur Facebook
            • Partager sur Twitter

            Créer une fenetre lors d'un clic sur le menu

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown