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
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
this page in: [[ | 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(":MyQTableWidget&quot;)<code> | ||
==Usando la | == Usando la API de Qt == | ||
Este acercamiento usa la | Este acercamiento usa la API de Qt para acceder al modelo directamente e iterar entre las filas y las columnas de la tabla. | ||
== | </code>def verifyNoEmptyCells(tableName):<br /> table = waitForObject(tableName)<br /> model = table.model()<br /> columnCount = model.columnCount()<br /> rowCount = model.rowCount() | ||
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 != "")<code> | |||
==Usando | == 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. | |||
</code>def verifyNoEmptyCells(tableName):<br /> table = waitForObject(tableName)<br /> columnCount = table.columnCount<br /> rowCount = table.rowCount | |||
for col in range(columnCount):<br /> for row in range(rowCount):<br /> item = waitForObjectItem(tableName, str(row)+"/&quot;''str(col))<br /> test.verify(item.text != "")<code> | |||
<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 /></code>def verifyNoEmptyCells(tableName):<br /> waitFor("object.exists(tableName)")<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("{column='"'' str(col) + "' container='" + tableName + "' row='" + str(row) + "' type='QModelIndex'}")<br /> test.verify(item.text != "")<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(":MyQTableWidget&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)+"/"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 != "")