[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. Trop cool, MERCI exactement je que je voulais.

    Je vais étudier le code pour bien le comprendre.

    MERCI

    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. 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. Ç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. 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()