[tkinter] Ajouter un label chaque minute

Résolu

Bonjour,

Je voudrais faire apparaître la première ligne d'information pendant une minute, puis la 2ième, 3ième et ainsi de suite. Est-ce possible?

D'avance merci

import feedparser
from tkinter import *
from tkinter import Tk, ttk

master = Tk()
master.attributes('-fullscreen', True)
master.bind('<Escape>', lambda e: master.destroy())
master.config(background='black')
frm1 = LabelFrame(master, text='France 24', font='Arial 15', fg='WHITE', bg='black', height=200, relief=GROOVE)
frm1.place(x=320, y=100)

feed = feedparser.parse("http://www.france24.com/fr/france/rss")

for entry in feed.entries:
    info = Label(frm1, text=entry.title, font='Arial 16', fg='WHITE', bg='black')
    info.pack()
    # print(entry.title)

master.mainloop()


Windows / Chrome 104.0.0.0

6 réponses

  1. Bonjour,

    C'est bizarre de créer un label pour chaque ligne

    Ce serait plus sympa avec le widget Text

    Exemple:

    import feedparser
    from tkinter import *
    from tkinter import Tk, ttk
    
    master = Tk()
    master.attributes('-fullscreen', True)
    master.config(background='blue')
    
    display = Text(master, width = 100, height = 100)
    display.place(x = 10, y = 10)
    feed = feedparser.parse("http://www.france24.com/fr/france/rss")
    
    row = 0.0
    for entry in feed.entries:
        display.insert(row, entry.title+'\n')
        row+=5.0
    
    master.mainloop()
    
    1. Ça fait partie d'un plus grand programme, plus facile pour la disposition, c'est une ébauche. Quand j'aurai obtenu le résultat que je souhaite, je ferais mieux. Je suis débutant.

      1. Contributeur

        bonjour,

        un exemple:

        from tkinter import *
        from tkinter import Tk, ttk
        
        master = Tk()
        master.attributes('-fullscreen', True)
        master.bind('<Escape>', lambda e: master.destroy())
        master.config(background='black')
        frm1 = LabelFrame(master, text='France 24', font='Arial 15', fg='WHITE', bg='black', height=200, relief=GROOVE)
        frm1.place(x=320, y=100)
        
        feed = ("un","deux","trois")
        def aff(info,feed,n):
            info.config(text=feed[n])
            if n+1<len(feed):
                n +=1
            else:
                n = 0
            info.after(2000,aff,info,feed,n)
        
        info = Label(frm1,  font='Arial 16', fg='WHITE', bg='black')
        info.pack()
        aff(info,feed,0)   # print(entry.title)
        
        master.mainloop()
        
        1. Merci, je vais creuser la question, pour l'instant ça affiche 1,2,3

          Un grand merci

          1. Contributeur

            plus proche de ton exemple:

            import feedparser
            from tkinter import *
            from tkinter import Tk, ttk
            
            master = Tk()
            master.attributes('-fullscreen', True)
            master.bind('<Escape>', lambda e: master.destroy())
            master.config(background='black')
            frm1 = LabelFrame(master, text='France 24', font='Arial 15', fg='WHITE', bg='black', height=200, relief=GROOVE)
            frm1.place(x=320, y=100)
            
            feed = feedparser.parse("http://www.france24.com/fr/france/rss").entries
            def aff(inpho,pheed,n):
                inpho.config(text=pheed[n].title)
                if n+1<len(pheed):
                    n +=1
                else:
                    pheed = feedparser.parse("http://www.france24.com/fr/france/rss").entries
                    n = 0
                info.after(1000,aff,inpho,pheed,n)
            
            info = Label(frm1,  font='Arial 16', fg='WHITE', bg='black')
            info.pack()
            aff(info,feed,0)   
            master.mainloop()
            
        2. Trop cool, MERCI exactement je que je voulais.

          Je vais étudier le code pour bien le comprendre.

          MERCI