Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

Squish/Iterating Through a Table/es: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
this page in: [[:Category:Tools::Squish::Iterating through a table|English]]
this page in: [[Category:Tools::Squish::Iterating_through_a_table|English]]


=Iterando a través de una tabla=
[[Category:Tools::Squish]] [[Category:Spanish]]
 
= Iterando a través de una tabla =


Hay varias formas de recorrer una tabla con script de test para utilizarlo cuando se necesita verificar o tomar una decisión sobre un determinado conjunto de filas o columnas. En los siguientes ejemplos vamos a utilizar los tres métodos para verificar que no hay celdas vacías en una tabla.
Hay varias formas de recorrer una tabla con script de test para utilizarlo cuando se necesita verificar o tomar una decisión sobre un determinado conjunto de filas o columnas. En los siguientes ejemplos vamos a utilizar los tres métodos para verificar que no hay celdas vacías en una tabla.


Al final, el uso de cualquiera de estos tres enfoques sería simplemente:<br />
Al final, el uso de cualquiera de estos tres enfoques sería simplemente:<br /><code>verifyNoEmptyCells(&quot;:MyQTableWidget&amp;quot;)<code>


==Usando la <span class="caps">API</span> de Qt==
== Usando la API de Qt ==


Este acercamiento usa la <span class="caps">API</span> de Qt para acceder al modelo directamente e iterar entre las filas y las columnas de la tabla.
Este acercamiento usa la API de Qt para acceder al modelo directamente e iterar entre las filas y las columnas de la tabla.


==Usando waitForObjectItem()==
</code>def verifyNoEmptyCells(tableName):<br /> table = waitForObject(tableName)<br /> model = table.model()<br /> columnCount = model.columnCount()<br /> rowCount = model.rowCount()


Usando waitForObjectItem() se puede acceder a items de un widget especifico, tales como las acciones en un menú o en este caso, las celdas de una tabla. Se necesitan dos parámetros, el primero es el nombre del objeto primario y el segundo es la identificación del elemento. Para las celdas de una tabla, que es de dos números enteros en forma de fila / columna.
for col in range(columnCount):<br /> for row in range(rowCount):<br /> itemText = str(model.data(model.index(row, col), Qt.DisplayRole).toString())<br /> test.verify(itemText != &quot;&quot;)<code>


==Usando nombres reales==
== Usando waitForObjectItem() ==


Squish ofrece dos formas de identificar los objetos en un script de tests, ya sea usando el nombre simbólico que se asigna a una entrada en el mapa del objetos, o usar el nombre real que muestra todas las propiedades y su valor esperado en una cadena de identificación. Detrás de escena, el nombre simbólico se mapea al nombre real, usando el nombre simbólico generalmente hace que el script sea más legible.
Usando waitForObjectItem() se puede acceder a items de un widget especifico, tales como las acciones en un menú o en este caso, las celdas de una tabla. Se necesitan dos parámetros, el primero es el nombre del objeto primario y el segundo es la identificación del elemento. Para las celdas de una tabla, que es de dos números enteros en forma de fila / columna.
 
Al utilizar el nombre real para identificar las celdas, podemos cambiar los valores esperados de las propiedades y por lo tanto el acceso a las diferentes celdas de la tabla como se ve a continuación.
 
===There is only one article in "Tools -&gt; Squish -&gt; IteratingThroughATableSpanish":===
 
===T===
* [[:Category:Tools::Squish::Iterating through a table|Category:Tools -&gt; Squish -&gt; Iterating_through_a_table]]


===Categories:===
</code>def verifyNoEmptyCells(tableName):<br /> table = waitForObject(tableName)<br /> columnCount = table.columnCount<br /> rowCount = table.rowCount


* [[:Category:Spanish|Spanish]]
for col in range(columnCount):<br /> for row in range(rowCount):<br /> item = waitForObjectItem(tableName, str(row)+&quot;/&amp;quot;''str(col))<br /> test.verify(item.text != &quot;&quot;)<code>
* [[:Category:Tools|Tools]]
<br />h2. Usando nombres reales
** [[:Category:Tools::Squish|Squish]]
<br />Squish ofrece dos formas de identificar los objetos en un script de tests, ya sea usando el nombre simbólico que se asigna a una entrada en el mapa del objetos, o usar el nombre real que muestra todas las propiedades y su valor esperado en una cadena de identificación. Detrás de escena, el nombre simbólico se mapea al nombre real, usando el nombre simbólico generalmente hace que el script sea más legible.
* [[:Category:Tools::Squish::Iterating through a table|Iterating_through_a_table]]
<br />Al utilizar el nombre real para identificar las celdas, podemos cambiar los valores esperados de las propiedades y por lo tanto el acceso a las diferentes celdas de la tabla como se ve a continuación.
<br /></code>def verifyNoEmptyCells(tableName):<br /> waitFor(&quot;object.exists(tableName)&quot;)<br /> columnCount = findObject(tableName).columnCount<br /> rowCount = findObject(tableName).rowCount
<br /> for col in range(columnCount):<br /> for row in range(rowCount):<br /> item = waitForObject(&quot;{column='&quot;'' str(col) + &quot;' container='&quot; + tableName + &quot;' row='&quot; + str(row) + &quot;' type='QModelIndex'}&quot;)<br /> test.verify(item.text != &quot;&quot;)<code>

Revision as of 11:46, 24 February 2015

this page in:

Iterando a través de una tabla

Hay varias formas de recorrer una tabla con script de test para utilizarlo cuando se necesita verificar o tomar una decisión sobre un determinado conjunto de filas o columnas. En los siguientes ejemplos vamos a utilizar los tres métodos para verificar que no hay celdas vacías en una tabla.

Al final, el uso de cualquiera de estos tres enfoques sería simplemente:

verifyNoEmptyCells(&quot;:MyQTableWidget&amp;quot;)<code>

== Usando la API de Qt ==

Este acercamiento usa la API de Qt para acceder al modelo directamente e iterar entre las filas y las columnas de la tabla.

def verifyNoEmptyCells(tableName):
table = waitForObject(tableName)
model = table.model()
columnCount = model.columnCount()
rowCount = model.rowCount() for col in range(columnCount):
for row in range(rowCount):
itemText = str(model.data(model.index(row, col), Qt.DisplayRole).toString())
test.verify(itemText != "")

== Usando waitForObjectItem() ==

Usando waitForObjectItem() se puede acceder a items de un widget especifico, tales como las acciones en un menú o en este caso, las celdas de una tabla. Se necesitan dos parámetros, el primero es el nombre del objeto primario y el segundo es la identificación del elemento. Para las celdas de una tabla, que es de dos números enteros en forma de fila / columna.

def verifyNoEmptyCells(tableName):
table = waitForObject(tableName)
columnCount = table.columnCount
rowCount = table.rowCount for col in range(columnCount):
for row in range(rowCount):
item = waitForObjectItem(tableName, str(row)+"/&quot;str(col))
test.verify(item.text != "")

<br />h2. Usando nombres reales
<br />Squish ofrece dos formas de identificar los objetos en un script de tests, ya sea usando el nombre simbólico que se asigna a una entrada en el mapa del objetos, o usar el nombre real que muestra todas las propiedades y su valor esperado en una cadena de identificación. Detrás de escena, el nombre simbólico se mapea al nombre real, usando el nombre simbólico generalmente hace que el script sea más legible.
<br />Al utilizar el nombre real para identificar las celdas, podemos cambiar los valores esperados de las propiedades y por lo tanto el acceso a las diferentes celdas de la tabla como se ve a continuación.
<br />

def verifyNoEmptyCells(tableName):
waitFor("object.exists(tableName)")
columnCount = findObject(tableName).columnCount
rowCount = findObject(tableName).rowCount


for col in range(columnCount):
for row in range(rowCount):
item = waitForObject("{column='" str(col) + "' container='" + tableName + "' row='" + str(row) + "' type='QModelIndex'}")
test.verify(item.text != "")