He hecho un Dialog en PyQt para usarlo como un plugin bajo QGIS 2.10
El diálogo funciona bien como una aplicación independiente, pero si trato de llamarlo como un plugin de QGIS, me sale este error:
AttributeError: el objeto 'module' no tiene el atributo 'QStringList'
Hay una pregunta similar ici pero a mí no me funciona.
El formulario está hecho con Qt Designer
Este es un fragmento de mi diálogo:
from qgis.core import *
from PyQt4 import QtCore, QtGui, QtSql
from Ui_BuscadorParcelas import Ui_BuscadorParcelas
# create the dialog for BuscadorParcelas
class BuscadorParcelasDialog(QtGui.QDialog):
def __init__(self):
.......................
def PrepararCuadros(self):
self.consulta = QtSql.QSqlQuery(self.conexion)
if self.consulta:
for i in range(self.numCamposLineEdit):
cadenaConsulta = "SELECT DISTINCT "+self.campo[i]+" FROM crcc ORDER BY "+self.campo[i];
self.consulta.exec_(cadenaConsulta)
self.ListaValores = QtCore.QStringList()
...................................................
Necesito que QStringList() establezca un objeto QCompleter
Completo la respuesta de Mathias Kuhn diciendo que si obtengo los valores de la lista a partir de una consulta a la base de datos, como en mi ejemplo, necesito anteponer unicode para obtener una lista python que QCompleter pueda usar como argumento (la primera línea del siguiente código sustituye a la última línea de la primera)
self.ListaValores = []
while self.consulta.next():
self.ListaValores.append(unicode(self.consulta.value(0)))
self.completer = QtGui.QCompleter(self.ListaValores, self)