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
| from tkinter import *
import os, sqlite3
from PIL import Image, ImageTk
import pdb
def loadConfig():
with open('./slides/slides.txt', 'r') as configFile:
x = 0
delay = []
link = []
for line in configFile.readlines():
c = 0
flag = False
val_delay = ''
val_link = ''
for char in line:
# Lignes de commentaires < # >
if char == '#':
brk = True
break
# Séparation et compteur de champs supportant plusieurs espaces
if flag and char != ' ':
c += 1
flag = False
if char == ' ':
flag = True
continue
# Retour à la ligne
if char == '\n':
break
# Champ 1: délai
if c == 0:
val_delay += char
# Champ 2: lien de la photo
if c == 1:
val_link += char
if brk:
brk = False
continue
delay.append(val_delay)
link.append(val_link)
x += 1
return delay, link
def sql():
conn_db = sqlite3.connect('./slides/slides.db')
with conn_db:
cursor = conn_db.cursor()
cursor.execute('SELECT * FROM slides')
return cursor.fetchall()
def loadSlides(links):
slides = []
for link in links:
slide_open = Image.open('./'+link)
slide = ImageTk.PhotoImage(slide_open)
slides.append(slide)
return slides
def slideshow():
#pdb.set_trace()
global j
j += 1
if j == len(slides):
j = 0
delay[j]
try:
lbl.config(image = slides[j])
except:
exit
window.after(delay[j], slideshow)
if __name__ == '__main__':
j = -1
window = Tk()
window.attributes("-fullscreen", True)
lbl = Label(window)
lbl.pack()
#delay, links = loadConfig()
delay = []
for slide in sql():
delay.append(slide[1])
links = []
for slide in sql():
links.append(slide[2])
slides = loadSlides(links)
slideshow()
window.mainloop() |
Partager