Re: PyQt QCompleter model

2009-09-17 Thread nusch
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

2009-09-16 Thread nusch
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

2009-09-16 Thread David Boddie
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