Home Marmoset

Marmoset's Python->"onChange"

polycounter lvl 6
Offline / Send Message
goekbenjamin polycounter lvl 6
when using "UISliderFloat->onChange"
how can i get the slider instance inside of that callable?

def changeit():
 #hiw to get the slider?

myslider = mset.UISliderFloat()
myslider.onChange = changeit

------

or is it even possible to use parameter within that callable?

Replies

  • AlainGalvan
    Offline / Send Message
    AlainGalvan polycounter lvl 6
    One option is to use a class, and to make myslider a member variable of that class. You can find a similar example of that in the Generate Primitives example in Toolbag, but here's an example:


     
    1. import mset
    2.  
    3. class MyPlugin:
    4. window = mset.UIWindow("My Plugin")
    5. slider = None
    6.  
    7. def sliderChangeCallback(self):
    8. print(self.slider.value)
    9.  
    10. def render(self):
    11. self.window.clearElements()
    12. self.slider = mset.UISliderFloat(min=0.1, max=10, name="My New Slider")
    13. self.slider.onChange = lambda: self.sliderChangeCallback()
    14. self.window.addElement(self.slider)
    15. self.window.visible = True
    16.  
    17. def __init__(self):
    18. self.render()
    19.  
    20. MyPlugin()
  • goekbenjamin
    Offline / Send Message
    goekbenjamin polycounter lvl 6
    thanks alot AlainGalvan. this looks nice already.  :)
  • goekbenjamin
    Offline / Send Message
    goekbenjamin polycounter lvl 6
    btw how do i know when a UIColorPicker has changed its value? it has no onChange event afaik
Sign In or Register to comment.