On Sep 17, 2:40 am, David Boddie <da...@boddie.org.uk> wrote: > 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
Thanks :) -- http://mail.python.org/mailman/listinfo/python-list