Re: PyQt QCompleter model
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 2 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
PyQt QCompleter model
The following code: strings=[asdad, baasd, casd, caxd] completer = QCompleter(strings) model = completer.model() print model.rowCount() model.stringList().append(test) 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 2 words in such list. Is there better way to do this? Or is there any other method with simply allow to add word to Qcompleter without using .stringList() -- http://mail.python.org/mailman/listinfo/python-list
Re: PyQt QCompleter model
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 2 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