IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Supprimer un onglet


Sujet :

Tkinter Python

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut Supprimer un onglet
    Bonjour,

    pourriez-vous me dire, s'il vous plait, s'il y'a la possibilité de supprimer un onglet d'un Notebook Widget ou carrément le Notebook Widget lui-même de l'interface grafique.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        nb = ttk.Notebook(root)
     
        # Adds tab 1 of the notebook
        page1 = ttk.Frame(nb)
        nb.add(page1, text='Texte')
     
        # Add the textbox
        tbox2 = Text(page1, wrap=WORD)
        tbox2.pack(fill=BOTH, expand=1)
     
        # Adds tab 2 of the notebook
        page2 = ttk.Frame(nb)
        nb.add(page2, text='Tab2')
    Merci d'avance,
    Arsène

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Salut,

    Citation Envoyé par Arsene12 Voir le message
    pourriez-vous me dire, s'il vous plait, s'il y'a la possibilité de supprimer un onglet d'un Notebook Widget ou carrément le Notebook Widget lui-même de l'interface grafique.
    Si c'est possible, voilà quelque chose qu'on devrait trouver dans la documentation... et un peu de recherche sur Internet vous permettrait d'en trouver plein et d'en choisir une qui vous va bien.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    Bonjour,

    j'avais cherché un peu avant de poser la question. Je n'avais trouvé que cet exemple.

    J'ai trouvé la fonction qu'il faut créer pour pouvoir supprimer le widget complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #
     
    def clear():
       monNotebook.destroy()
    J'aimerai maintenant pouvoir supprimer qu'un seul onglet, quand je fais Fichier --> Clear sur ce code : .

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    from tkinter import *
    from PIL import Image, ImageTk
    from tkinter import filedialog, ttk
    from tkinter.filedialog import askopenfile
    import os
    from os.path import basename
     
    varGlobal = 0
     
     
    class AutoScrollbar(Scrollbar):
        # a scrollbar that hides itself if it's not needed.  only
        # works if you use the grid geometry manager.
        def set(self, lo, hi):
            if float(lo) <= 0.0 and float(hi) >= 1.0:
                self.grid_remove()
            else:
                self.grid()
            Scrollbar.set(self, lo, hi)
        def pack(self, **kw):
            raise TclError ("cannot use pack with this widget")
        def place(self, **kw):
            raise TclError ("cannot use place with this widget")
     
     
    def Clear():
        nb().destroy()         
     
    def openFile():
        global filename
        file = askopenfile(parent=root,title='Select a File')
        filename = file.name
        t = file.read()
     
        #print(nb.index('current'))
     
        basename(filename)
     
        frame1 = create_frame(nb, t)
        nb.add(frame1, text=basename(filename))
        #tbox1 = Text(frame1, wrap=WORD)    
        #print(tbox1)
        #print(nb.index(frame1))
        #print(nb.select(nb.index("current")))
     
        nb.select(nb.index(frame1))
     
        file.close()
     
    def callback():
        frame.focus_set()
        print ("clicked at", event.x, event.y)
     
    def create_frame(master, t):
        frame = Frame(master, bd=2, relief=SUNKEN)
        yscrollbar = AutoScrollbar(frame)
        yscrollbar.grid(row=0, column=1, sticky=N+S)
        text = Text(frame, 
                    yscrollcommand=yscrollbar.set, background="beige")
     
        #print ("Mon Onglet : "+str(text))
     
        text.grid(row=0, column=0, sticky='nwse') # expansion du widget Text
     
        frame.grid_columnconfigure(0, weight=1) # expansion de la colonne
        frame.grid_rowconfigure(0, weight=1) # expansion de la colonne
     
        text.insert(0.0, t)
        print(t) 
        return frame
     
    if __name__ == '__main__':
        root = Tk()
     
        root.title("MonkeyCode Editor")    
     
        menubar = Menu(root)
        filemenu = Menu(menubar)
     
        filemenu.add_command(label="Ouvrir", command=openFile)
        filemenu.add_command(label="Clear", command=Clear)
        menubar.add_cascade(label="Fichier", menu=filemenu)  
     
        root.config(menu=menubar)    
        nb = ttk.Notebook(root)    
     
        root.update()
     
        def ferme():
            global varGlobal
            for widget in root.winfo_children():
                if isinstance(widget,Toplevel):
                    widget.destroy()
                    varGlobal = 0
     
     
     
        t=""
     
        frame1 = create_frame(nb, t)
        nb.add(frame1, text="new 1")
     
        frame2 = create_frame(nb, t)
        nb.add(frame2, text="new 2")
     
        frame3 = create_frame(nb, t)
        nb.add(frame3, text="new 3")
     
     
        nb.pack(expand=YES, fill=BOTH)
     
        position=Label(root,text="Clic détecté en X =''+'','' Y = ")
        position.pack()
     
     
        mainloop()

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    Ça y'est, j'ai trouvé. C'était tout simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def Clear():
        frame1().destroy()

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par Arsene12 Voir le message
    j'avais cherché un peu avant de poser la question. Je n'avais trouvé que cet exemple.
    C'est un des rares widget a peu près documenté dans la documentation Python, sinon il est bien sur documenté dans TCL/Tk.
    Comme, c'est un widget quelque peu exotique, il n'est pas toujours documenté dans les ressources qu'on trouve sur le Wiki Python ou ici sur DVP.
    Et sans le mode d'emploi, pas facile d'avoir les mots clefs permettant de trouver des exemples de code sur Internet.


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vtiger: supprimer l'onglet activité
    Par galsen.quebec dans le forum Vtiger
    Réponses: 1
    Dernier message: 10/11/2010, 20h00
  2. Supprimer un onglet dans Excel avec Coldfusion
    Par Jordel dans le forum Coldfusion
    Réponses: 1
    Dernier message: 18/05/2009, 14h10
  3. [MediaWiki] Supprimer les onglets "préférence", "suivi", etc.
    Par Nicolas123 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 07/07/2008, 14h28
  4. Supprimer plusieurs onglet
    Par borbi dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/04/2008, 10h36
  5. [RCP] Supprimer l'onglet de la vue
    Par Wookai dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 27/07/2005, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo