python - Display value of scale in Canvas in Tkinter -


i trying develop gui in tkinter. have main code

from menus import * tkinter import * speedcontrol import *  main = tk() main.tk_setpalette(background='white') generatemenus(main) generateslider(main) mainloop() 

the code generateslider tkinter import *

def generateslider(master):     display1 = canvas(master, width=150, height=80, relief=raised, bd=5)     display1.grid(row=0,column=0)     display1.create_rectangle(10, 10, 150, 80, fill='dark red')     slider1 = scale(master, from_=0, to=100, length=400,                     tickinterval=10, orient=horizontal, relief=sunken, bd=5,                     bg='white', troughcolor='black', sliderrelief=raised)     slider1.grid(row=0,column=1)     display1.create_text(50,20, font='helvatica 28', text=slider1.get(), fill='white', anchor=nw)     display2 = canvas(master, width=150, height=80, relief=raised, bd=5)     display2.grid(row=1,column=0)     display2.create_rectangle(10, 10, 150, 80, fill='dark red')     slider2 = scale(master, from_=0, to=100, length=400,                     tickinterval=10, orient=horizontal, relief=sunken, bd=5,                     bg='white', troughcolor='black', sliderrelief=raised)     slider2.grid(row=1,column=1)     display2.create_text(50,20, font='helvatica 24', text=slider2.get(), fill='white', anchor=nw) 

what trying here program should display current value of slider text inside canvas. initial value displayed in canvas need method update value when slider moves.

let me elaborate on comment. mean (using classes, , simplified example suit purpose):

from tkinter import *  class window():      def __init__(self, master):          self.display1 = canvas(master, width=150, height=80, relief=raised, bd=5)         self.display1.grid(row=0,column=0)         self.display1.create_rectangle(10, 10, 150, 80, fill='dark red')          self.slider1 = scale(master, from_=0, to=100, length=400,                 tickinterval=10, orient=horizontal, relief=sunken, bd=5,                 bg='white', troughcolor='black', sliderrelief=raised, command = self.updatecanvas)         self.slider1.grid(row=0,column=1)          self.createdtext = self.display1.create_text(50, 20, font = 'helvatica 28', text = self.slider1.get(), fill = 'white', anchor = nw)      def updatecanvas(self, sliderval):          self.display1.itemconfig(self.createdtext, text = sliderval)  master = tk() w = window(master) master.mainloop() 

edit: removed lambda call updatecanvas command scale widgets passes it's value when called. able instead give updatecanvas parameter sliderval automatically passed, , use update text. removed call update() unnecessary.

edit 2: updated code reflect suggestion fhdrsdg, allows text updated without needing destroy & recreate every time update function called.


Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -