I'm trying to learn how to use Traits for building simple UIs for my Python scripts. I want to make a programme with a list which the user can add words to with one button, or to clear the list completely with another.
So far, I've used traits:
myList = List(Str)
myList = ['Item1','Item2'] #Initial items in list
To display this list in a traits UI, I used ListStrEditor from the traits UI package:
Item('myList', show_label = False, label = 'Data Files', editor = ListStrEditor(auto_add = False)
I have coded 2 buttons:
1) one for ADDing an item to the list (myList.append('item3')
)
2) a CLEAR button to empty the list (myList = []
). The basic UI is good, the buttons work and my list variable is changed as expected.
However, the problem is, that my list in the GUI doesn't update. If I click on it the new values are displayed, however. Also, I want to potentially add many items to it and wonder if there is a way to add a scrollbar to the side?
I've looked up the ListStrEditor manual and usage, although I'm getting a bit bogged down with terminology. Apparently a refresh()
function exists, but I'm not sure how to apply it to ListStrEditor. Also, I'm not sure if I need to use things called "adapters" or "handlers".
Any tips or pointers in the right direction would be much appreciated!