@cvp That looks good. I did intend to use the prompt as you suggest but I was going to store it in the class I was building which creates the TableViewCell. I didn't get that far in developing the code because I couldn't figure out how to bind an instance method from new()
which doesn't have an instance (self) pointer. It only gets a class pointer. I'm still confused about new vs init and what you can do in which. (And I should be running this in python 3. I keep forgetting the default is still set to 2.7. I should fix that.)
It didn't occur to me that I could store data (ie the prompt value) in the Switch instance itself so I don't need to bind the action to a class method. I am still not used to the flexibility of Python. Based on this I really should discard all the new classes in this code except for the data_souce class and focus on storing 'instance' data in the widget objects and then use simple functions as callbacks and to encapsuate whatever functionality is left. And then put all the gui stuff in its own namespace.
Your other comments are completely valid and I thank you but they are mostly a result of being half way through a code restructure. For example the Number class started as a cut and paste of the other class and I hadn't gotten to updating the TextField action. I've been totally blocked on the action bind problem. I should have created and posted a stripped down version which only showed the action binding error and not waste everyone's time looking at code I already knew was wrong. My apologies.
Note: Setting Switch.enabled = 0 instead of False may be wrong but it works. ```