Générer une matrice de cases à cocher sélectionnablesTous,
Vous vous demandez quel est le moyen le plus simple de générer une matrice de cases à cocher sélectionnables. Donc, ce que j'aimerais pouvoir faire, c'est générer une matrice non carrée et la faire apparaître pour que l'utilisateur puisse sélectionner n'importe quelle position dans la matrice qu'il souhaite. Tant que l'utilisateur peut sélectionner plusieurs lignes dans une colonne et vice versa, ce serait bien de répondre au besoin. Toute aide est appréciée.
Re : Générer une matrice de cases à cocher sélectionnablesJe me rends compte que je suis en retard dans le jeu et j'espère que vous l'avez déjà compris.Le principal problème est que vous n’avez jamais affiché la Table Box dans votre code.Je pense que le prochain problème est que vous analysez la table juste après l'avoir créée.J'imagine que vous souhaitez le faire une fois que l'utilisateur a eu la possibilité de cocher les cases.Espérons que le code ci-dessous soit plus proche de ce que vous recherchez.
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 : Générer une matrice de cases à cocher sélectionnables@Justin_Chilton / @txnelson / @thomasz
J'ai une question complémentaire, je me demande si l'un d'entre vous pourrait penser à un moyen de procéder. J'essaie de générer la matrice de cases sélectionnables dans une boîte de panneau. Voici le script que j'ai, je me demande si vous pourriez m'expliquer pourquoi j'échoue ?
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>
L'interface utilisateur résultante ressemble à ce que je veux, cependant, lorsque je clique sur le bouton "Entrer la matrice cible" ci-dessus, elle ne fait pas ce que je veux. Peux-tu aider s'il te plait
Re : Générer une matrice de cases à cocher sélectionnablesVous pouvez ajouter un en-tête à un CheckBox dans un TableBox en utilisant le message <
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>
Fenêtre:

Re : Générer une matrice de cases à cocher sélectionnables@Justin_Chilton ,
Ma première question est la suivante : est-il possible d'ajouter du texte en haut de chaque colonne et au début de chaque ligne ?
Si oui, quelle serait une manière efficace de le faire ? Chacun d’entre eux doit-il être entouré d’une zone de texte ?
Re : Générer une matrice de cases à cocher sélectionnables@uday_guntupalli ,
Vous pouvez utiliser un CheckBox() dans une Table Box pour créer un tableau de cases à cocher.
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 );
)
);
Voici à quoi ressemble la fenêtre :

Et voici le résultat dans le journal avec les cases à cocher sélectionnées ci-dessus :
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 : Générer une matrice de cases à cocher sélectionnables@thomasz ,
Je pense que pour mes besoins, ça a l'air bien. Cependant, si vous me le permettez, j'ai quelques questions complémentaires :
1. Les positions sélectionnées sont-elles récupérables ? - Si oui, pouvez-vous fournir un exemple de la manière de récupérer ces données ?
2. Est-il possible d'ajouter un peu plus de texte autour de cette fenêtre ? Plutôt une étiquette d'axe X et une étiquette d'axe Y
Re : Générer une matrice de cases à cocher sélectionnablesCe n'est pas une solution très élégante, mais quelque chose comme ceci peut fonctionner :
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^))")));