• [^] # Re: En python

    Posté par (site web personnel) . En réponse au message Presse-papier directement visible à l’écran pour tuto’vidéos. Évalué à 2.

    Voici ma version actuelle, pour ceux qui passent par ici et que cela pourrait intéresser. (je sais pas faire un git pour l’instant, mais faites, faites...)

    Attention que j’apprends le Python par la même occasion et qu’il m’en a fallu du temps et des recherches pour améliorer le code de ted (encore merci ted). Ce n’est donc peut-être plus aussi élégant et optimal :/

    Ce qui nous manque, c’est une limitation en taille, nombre de lignes maximum, et largeur maximum également, avec insertion de retours à la ligne automatiques...

    #!/usr/bin/env python3
    from tkinter import *
    def updateLabel(w, content):
     try:
     clipboard = w.clipboard_get()
     except:
     clipboard = "Le presse-papier est vide :)"
     if content.get() != clipboard: #La condition est peut-être inutile
     content.set(clipboard)
     w.after(200, updateLabel, w, content) #Récupère le presse-papier toutes les 200ms
    def move(w):
     x = cx - ( w.winfo_width() / 2 )
     y = cy - ( w.winfo_height() / 2 )
     if x != w.winfo_x() or y != w.winfo_y() :
     w.geometry('+{0}+{1}'.format( int(x), int(y) ))
     w.after(50, move, w )
    def move_event(event):
     global cx, cy
     cx = event.x_root
     cy = event.y_root
    def close(event):
     w.quit()
    w = Tk()
    cx = w.winfo_screenwidth()/2
    cy = w.winfo_screenheight()/2
    w.overrideredirect(True) #Cacher les décorations de fenêtre
    content = StringVar()
    updateLabel(w, content)
    label=Label(w, textvariable = content, font=("Sans", 12), bg="#eeeeee" )
    label.pack(side =TOP, padx =1, pady =1)
    w.bind('<B1-Motion>', move_event) #Clic gauche pour bouger la fenêtre
    w.bind("<Button-3>", close) #Clic droit pour quitter
    move(w)
    w.mainloop()