4 votos

El cuadro combinado del atlas del compositor de impresión de QGIS está limitado a 499 funciones.

Sí, de verdad. He generado un atlas con una capa de cobertura de 883 características, y el cuadro combinado en el que se selecciona la vista previa actual sólo muestra las 499 primeras características, como se muestra en la siguiente captura de pantalla (he probado esto con varias capas de cobertura de gran tamaño):

enter image description here

No obstante, las cifras más altas también son accesibles. Puedo seleccionar los números más altos yendo a #499 y pulsando Siguiente artículo o vaya al botón Última función y haciendo clic en Artículo anterior pero entonces sólo veo el número de función sin el nombre de la página:

enter image description here

Además, cuando quiero, digamos, el nº 700, tengo que hacer clic en Siguiente o Anterior unas 200 veces. Eso es algo inconveniente.

He observado esto tanto en QGIS 2.14.15 LTR como en la última versión 2.18.14 LTR, así que ¿no hay nadie antes que yo que tenga más de 499 características de cobertura?

Definitivamente no es debido a Qt, donde los combos con 1000's de elementos no es un problema, el autor debe haber establecido explícitamente the_combo.setMaxCount(499) en alguna parte, sino por qué (cp. http://doc.qt.io/qt-5/qcombobox.html#maxCount-prop )?

Pregunta antes de plantear una cuestión: ¿Existe alguna razón técnica o práctica para tal limitación, o me he perdido algún ajuste en alguna parte?

0 votos

2 votos

Voy a votar para cerrar esta pregunta como fuera de tema porque debería ser un informe de error en lugar de una pregunta en StackExchange.

0 votos

@underdark No estoy de acuerdo. La cuestión es si es un bug o no, si el autor lo implementó explícitamente así. De todas formas, un bug sería algo no intencionado por el autor, creo yo. ¿No deberíamos aclarar el motivo de esta implementación antes de elevar un informe de error?

4voto

Andy Brandi Puntos 650

Si muestra el Código QGIS puede encontrar esta limitación.

void QgsComposer::updateAtlasPageComboBox( int pageCount )
{
  if ( !mComposition )
    return;

  mAtlasPageComboBox->blockSignals( true );
  mAtlasPageComboBox->clear();
  for ( int i = 1; i <= pageCount && i < 500; ++i )
  {
    QString name = mComposition->atlasComposition().nameForPage( i - 1 );
    QString fullName = ( !name.isEmpty() ? QString( "%1: %2" ).arg( i ).arg( name ) : QString::number( i ) );

    mAtlasPageComboBox->addItem( fullName, i );
    mAtlasPageComboBox->setItemData( i - 1, name, Qt::UserRole + 1 );
    mAtlasPageComboBox->setItemData( i - 1, fullName, Qt::UserRole + 2 );
  }
  mAtlasPageComboBox->blockSignals( false );
}

la línea Importante es for ( int i = 1; i <= pageCount && i < 500; ++i )

https://github.com/qgis/QGIS/blob/release-2_18/src/app/composer/qgscomposer.cpp#L1056

y la respuesta a la siguiente característica botón de trabajo es porque esta llamada a siguienteCaracterística() método :

https://github.com/qgis/QGIS/blob/release-2_18/src/core/composer/qgsatlascomposition.cpp#L337

y emite una señal emitir featureChanged( &mCurrentFeature ); esta señal es recibida por void QgsComposer::atlasFeatureChanged( QgsFeature *característica )

https://github.com/qgis/QGIS/blob/release-2_18/src/app/composer/qgscomposer.cpp#L1068

Y poner el valor de la nueva característica :

 mAtlasPageComboBox->setCurrentIndex( mComposition->atlasComposition().currentFeatureNumber() );

sin tener en cuenta la limitación inicial

es una manera extraña de decirlo creo yo

2voto

Sushant23 Puntos 329

Tengo el mismo problema. No puedo ver más de 499 características en el cuadro combinado de vista previa del atlas. Tengo un archivo shape de polígonos compuesto por 539 polígonos, y sí, sólo puedo ver 499:

enter image description here

Como solución alternativa y para ver el número de página del atlas junto con el nombre puede insertar un cuadro de texto y escribir la siguiente expresión:

 @atlas_featurenumber || ': ' || Field_NAME    # Field_NAME is the field that contains the name of each polygon

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X