Organizando Widgets
Ajuste del tamaño y la posición del Widget
Llame «withSize» y «withPosition» para fijar el tamaño y la posición del Widget en la pestaña.
withSize
establece el número de columnas de ancho y las filas de alto que el Widget debe ser. Por ejemplo, llamar «withSize» (1, 1) hace que el Widget ocupe una sola celda en la red. Tenga en cuenta que algunos Widgets tienen un tamaño mínimo que puede ser mayor que el tamaño especificado, en cuyo caso el Widget usará el tamaño más pequeño soportado.
withPosition
establece la fila y la columna de la esquina superior izquierda del Widget. Tanto las filas como las columnas están indexadas con el 0, por lo que la fila superior es el número 0 y la columna más a la izquierda también es el número 0. Si se especifica la posición de cualquier Widget en una pestaña, cada Widget también debería tener su posición establecida para evitar que se superpongan.
Shuffleboard.getTab("Pre-round")
.add("Auto Mode", autoModeChooser)
.withSize(2, 1) // make the widget 2x1
.withPosition(0, 0); // place it in the top-left corner
frc::Shuffleboard::GetTab("Pre-round")
.Add("Auto Mode", autoModeChooser)
.WithSize(2, 1)
.WithPosition(0,0);
from wpilib.shuffleboard import Shuffleboard
(Shuffleboard.getTab("Pre-round")
.add("Auto Mode", autoModeChooser)
.withSize(2, 1) # make the widget 2x1
.withPosition(0, 0)) # place it in the top-left corner
Adición de Widgets a los diseños
Si hay muchos widgets en una pestaña con datos relacionados, puede ser útil colocarlos en subgrupos más pequeños en lugar de perderlos en la pestaña. De forma muy parecida a como se recupera el manejo de una pestaña con Shuffleboard.getTab
, un diseño dentro de una pestaña (o incluso en otro diseño) puede ser recuperado con ShuffleboardTab.getLayout
.
ShuffleboardLayout elevatorCommands = Shuffleboard.getTab("Commands")
.getLayout("Elevator", BuiltInLayouts.kList)
.withSize(2, 2)
.withProperties(Map.of("Label position", "HIDDEN")); // hide labels for commands
elevatorCommands.add(new ElevatorDownCommand());
elevatorCommands.add(new ElevatorUpCommand());
wpi::StringMap<std::shared_ptr<nt::Value>> properties{
std::make_pair("Label position", nt::Value::MakeString("HIDDEN"))
};
frc::ShuffleboardLayout& elevatorCommands = frc::Shuffleboard::GetTab("Commands")
.GetLayout("Elevator", frc::BuiltInLayouts::kList)
.WithSize(2, 2)
.WithProperties(properties);
ElevatorDownCommand* elevatorDown = new ElevatorDownCommand();
ElevatorUpCommand* elevatorUp = new ElevatorUpCommand();
elevatorCommands.Add("Elevator Down", elevatorDown);
elevatorCommands.Add("Elevator Up", elevatorUp);
from wpilib.shuffleboard import Shuffleboard
from wpilib.shuffleboard import BuiltInLayouts
(elevatorCommands = Shuffleboard.getTab("Commands")
.getLayout("Elevator", BuiltInLayouts.kList)
.withSize(2, 2)
.withProperties(map("Label position", "HIDDEN"))) # hide labels for commands
elevatorCommands.add(ElevatorDownCommand())
elevatorCommands.add(ElevatorUpCommand())