Generar una matriz de casillas de verificación seleccionablesTodo,
Se pregunta cuál es la forma más sencilla de generar una matriz de casillas de verificación seleccionables. Entonces, lo que me gustaría poder hacer es generar una matriz no cuadrada y mostrarla para que el usuario seleccione cualquier posición en la matriz que desee. Siempre que el usuario pueda seleccionar varias filas dentro de una columna y viceversa, sería bueno satisfacer la necesidad. Se agradece cualquier ayuda.
Re: Generar una matriz de casillas de verificación seleccionablesMe doy cuenta de que llego tarde al juego y espero que ya lo hayas descubierto.El problema principal es que nunca mostró el cuadro de tabla en su código.Creo que el siguiente problema es analizar la tabla inmediatamente después de crearla.Me imagino que querrás hacer esto después de que el usuario tenga la oportunidad de marcar las casillas.Esperemos que el siguiente código se acerque más a lo que está buscando.
Names Default To Here( 1 );
InputsLoadBasic = Expr(
LB1 = Lineup Box( N Col( 2 ) );
LB1 << Append(
Panel Box( "Test",
V List Box( V List Box( Text Box( "Arg1" ), NEB_arg1 = Number Edit Box( 2 ), Text Box( "Arg2" ), NEB_arg2 = Number Edit Box( 3 ), ) )
)
);
LB1 << Append(
Panel Box( "Selectable Matrix Test",
V List Box(
Button Box( "Enter Target Matrix",
nR = 12;
nC = 24;
SCB1 = String Col Box( "", {} );
if(!isempty(TB1),
TB1 << Delete Box;
);
For( i = 1, i <= nR, i++,
SCB1 << Add Element( Char( i ) )
);
TB1 = Table Box( SCB1 );
For( i = 1, i <= nC, i++,
Insert Into( TB1, Check Box( Repeat( {" "}, nR ), <<SET heading=""></SET>Re: Generar una matriz de casillas de verificación seleccionables@Justin_Chilton / @txnelson / @thomasz
Tengo una pregunta complementaria: me pregunto si alguno de ustedes podría pensar en una manera de hacer esto. Estoy intentando generar la matriz de cuadros seleccionables dentro de un Panel Box. Aquí está el guión que tengo. Me pregunto si podría orientarme sobre por qué estoy fallando.
InputsLoadBasic =
Expr(
LB1 = Lineup Box( N Col( 2 ) );
LB1 << Append(Panel Box( "Test",
V List Box(
V List Box(
Text Box( "Arg1" ),
NEB_arg1 = Number Edit Box( 2 ),
Text Box( "Arg2" ),
NEB_arg2 = Number Edit Box( 3 ),
)
)
)
);
LB1 << Append(Panel Box( "Selectable Matrix Test",
V List Box(
Button Box("Enter Target Matrix",
nR = 12;
nC = 24;
SCB1 = String Col Box( "", {} );
For( i = 1, i <= nR, i++,
SCB1 << Add Element( Char( i ) )
);
TB1 = Table Box( SCB1 );
For( i = 1, i <= nC, i++,
Insert Into( TB1, Check Box( Repeat( {" "}, nR ), <<SET heading=""></SET>
La interfaz de usuario resultante se parece a lo que quiero; sin embargo, cuando hago clic en el botón "Ingresar matriz de destino" que se muestra arriba, no hace lo que quiero. ¿Puedes ayudar por favor?
Re: Generar una matriz de casillas de verificación seleccionablesPuede agregar un encabezado a un CheckBox dentro de un TableBox usando el mensaje <
nRow = 5;
nCol = 6;
// string col box for row labels
scb = String Col Box( "", {} );
// add labels to rows
For( i = 1, i <= nRow, i++,
scb << Add Element( "row" || Char( i ) )
);
// create a table box to contain everything
tbl = Table Box( scb );
// add all columns with the given number of rows
For( i = 1, i <= nCol, i++,
Insert Into(
tbl,
Check Box(
Repeat( {" "}, nRow ),
<<SET heading=""></SET>
Ventana:

Re: Generar una matriz de casillas de verificación seleccionables@Justin_Chilton ,
Una pregunta de seguimiento que tengo es: ¿Es posible agregar texto encima de cada columna y al comienzo de cada fila?
Si es así, ¿cuál sería una forma eficiente de hacerlo? ¿Debería cada uno de ellos estar envuelto en un cuadro de texto?
Re: Generar una matriz de casillas de verificación seleccionables@uday_guntupalli ,
Puede utilizar CheckBox() dentro de un cuadro de tabla para crear una tabla de casillas de verificación.
nRow = 5;
nCol = 6;
// create a table box to contain everything
tbl = Table Box();
// add all columns with the given number of rows
For( i = 1, i <= nCol, i++,
Insert Into( tbl, Check Box( Repeat( {" "}, nRow ) ) )
);
New Window( "Check Box Example",
tbl,
Button Box( "Show results",
// initialize the result
result = {};
// loop through each row
For( i = 1, i <= nRow, i++,
// initialize the row list
result[i] = {};
// loop through each column getting values
For( j = 1, j <= nCol, j++,
result[i][j] = tbl[CheckBoxBox( j )] << get( i )
);
);
// convert the list to a 2-d matrix
result = Matrix( result );
Show( result );
)
);
Así es como se ve la ventana:

Y aquí está el resultado en el registro con las casillas de verificación seleccionadas anteriormente:
result =
[ 1 0 0 0 0 0,
0 1 0 0 0 0,
0 0 1 0 0 0,
0 0 0 1 0 0,
0 0 0 0 1 0];
Re: Generar una matriz de casillas de verificación seleccionables@thomasz ,
Creo que para mis necesidades, se ve bien. Sin embargo, si se me permite, tengo un par de preguntas complementarias:
1. ¿Se pueden recuperar las posiciones seleccionadas? - En caso afirmativo, ¿podría proporcionarnos un ejemplo de cómo recuperar esos datos?
2. ¿Es posible agregar un poco más de texto alrededor de esta ventana? Más bien como una etiqueta del eje X y una etiqueta del eje Y
Re: Generar una matriz de casillas de verificación seleccionablesNo es una solución muy elegante, pero algo como esto puede funcionar:
lv={};
for(i=1,i<=4,i++, insert into(lv,""));
tCB="";
for(j=1,j<6,j++,tCB||="check box( (lv)),");
tCB=substr(tcB,1,length(tCB)-1);
eval(parse(eval insert("wind=new window( \!"Check boxes\!",
H List Box(
^tCB^))")));