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
| from tkinter import *
from tkinter import ttk
class ExtendScale(Frame):
def __init__(self, master=NONE):
Frame.__init__(self)
settings = [0,500,100]
interval = int((settings[1]-settings[0])/settings[2])
# Création du widget Scale
self.scale = ttk.Scale(self, from_=settings[0], to=settings[1], length=500, command=self.updateLabel)
self.scale.grid(row=1, column=1, rowspan=1, columnspan=interval+1, sticky=EW)
############
# Ajout d'un label pour test
self.label = ttk.Label(self)
self.label.grid(row=3, column=1)
############
# Définition du label de départ
self.start = ttk.Label(self, text='0')
self.start.grid(row=0, column=1, sticky=W)
# Définition des labels intermediaires
for i in range(0,interval-1, 1):
current = round(settings[0]+settings[2]*(i+1),0)
self.scale.set(current)
self.scale.update()
z = ttk.Label(self, text=str(round(settings[0]+settings[2]*(i+1),0)), background='blue')
z.place(x=self.scale.coords(current)[0], y=10, anchor=CENTER)
# Définition du label de fin
finish = ttk.Label(self, text=str(settings[1]))
finish.grid(row=0, column=interval+1, sticky=E)
def updateLabel(self, widget):
"""test"""
self.label.configure(text='Valeur actuelle = ' + str(round(float(widget), 0)))
if __name__== "__main__":
root = Tk()
scale = ExtendScale(root)
scale.grid()
root.mainloop() |
Partager