On Thursday 17 September 2009 01:14, nusch wrote: > The following code: > > strings=["asdad", "baasd", "casd", "caxd"] > completer = QCompleter(strings) > model = completer.model() > print model.rowCount() > model.stringList().append("test")
This may not work as you expect. Although it may actually modify the list, the model won't know about the change. > print model.rowCount() > > prints 4 before and after appending test to stringList. What should I > do to let the model know about new data? I can save reference to > model.stringList() append keyword and after pass this reference as an > argument to setStringList then last model.rowCount() increases, but it > is not efficient when operating with e.g 20000 words in such list. Ideally, you would call setStringList(), but I can see why that isn't a good solution for you. > Is there better way to do this? Or is there any other method with > simply allow to add word to Qcompleter without using .stringList() > Use the model API to append new rows and set new data. Something like this should get you started: rows = model.rowCount() if model.insertRow(rows): index = model.index(rows) model.setData(index, QVariant("test")) David -- http://mail.python.org/mailman/listinfo/python-list