Generieren Sie eine Matrix aus auswählbaren KontrollkästchenAlle,
Ich frage mich, wie man am einfachsten eine Matrix aus auswählbaren Kontrollkästchen erstellen kann. Ich möchte also in der Lage sein, eine nichtquadratische Matrix zu generieren und sie dem Benutzer anzuzeigen, damit er eine beliebige Position in der Matrix auswählen kann, die er möchte. Solange der Benutzer mehrere Zeilen innerhalb einer Spalte auswählen kann und umgekehrt, wäre es gut, den Bedarf zu decken. Jede Hilfe wird geschätzt.
Betreff: Generieren Sie eine Matrix aus auswählbaren KontrollkästchenMir ist klar, dass ich zu spät zum Spiel komme, und ich hoffe, Sie haben das bereits herausgefunden.Das Hauptproblem besteht darin, dass Sie das Tabellenfeld nie in Ihrem Code angezeigt haben.Ich glaube, das nächste Problem besteht darin, dass Sie die Tabelle direkt nach der Erstellung analysieren.Ich kann mir vorstellen, dass Sie dies tun möchten, nachdem der Benutzer die Möglichkeit hat, die Kontrollkästchen zu aktivieren.Hoffentlich entspricht der folgende Code näher dem, was Sie suchen.
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>Betreff: Generieren Sie eine Matrix aus auswählbaren Kontrollkästchen@Justin_Chilton / @txnelson / @thomasz
Ich habe eine Folgefrage und frage mich, ob sich jemand von Ihnen eine Möglichkeit vorstellen könnte, dies zu tun. Ich versuche, die Matrix auswählbarer Boxen innerhalb einer Panel-Box zu generieren. Hier ist das Skript, das ich habe. Ich frage mich, ob Sie mir erklären könnten, warum ich versage.
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>
Die resultierende Benutzeroberfläche sieht so aus, wie ich es möchte. Wenn ich jedoch auf die oben gezeigte Schaltfläche „Zielmatrix eingeben“ klicke, führt sie nicht das aus, was ich möchte. Können Sie bitte helfen
Betreff: Generieren Sie eine Matrix aus auswählbaren KontrollkästchenSie können einer CheckBox innerhalb einer TableBox eine Überschrift hinzufügen, indem Sie die Nachricht <
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>
Fenster:

Betreff: Generieren Sie eine Matrix aus auswählbaren Kontrollkästchen@Justin_Chilton ,
Eine weitere Frage, die ich habe, lautet: Ist es möglich, über jeder Spalte und am Anfang jeder Zeile Text hinzuzufügen?
Wenn ja, was wäre ein effizienter Weg, dies zu tun? Sollte jeder von ihnen in ein Textfeld eingeschlossen werden?
Betreff: Generieren Sie eine Matrix aus auswählbaren Kontrollkästchen@uday_guntupalli ,
Sie können eine CheckBox() innerhalb einer Tabellenbox verwenden, um eine Tabelle mit Kontrollkästchen zu erstellen.
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 );
)
);
So sieht das Fenster aus:

Und hier ist das Ergebnis im Protokoll mit den oben ausgewählten Kontrollkästchen:
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];
Betreff: Generieren Sie eine Matrix aus auswählbaren Kontrollkästchen@thomasz ,
Ich denke, für meine Bedürfnisse sieht es gut aus. Wenn ich jedoch darf, habe ich noch ein paar weitere Fragen:
1. Sind die ausgewählten Positionen abrufbar? - Wenn ja, können Sie bitte ein Beispiel dafür geben, wie diese Daten abgerufen werden können?
2. Ist es möglich, etwas mehr Text um dieses Fenster herum hinzuzufügen? Eher wie eine X-Achsen-Beschriftung und eine Y-Achsen-Beschriftung
Betreff: Generieren Sie eine Matrix aus auswählbaren KontrollkästchenKeine sehr elegante Lösung, aber so etwas könnte funktionieren:
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^))")));