组织小部件

设置小部件的大小和位置

调用“ withSize”和“ withPosition”来设置窗口小部件在选项卡中的大小和位置。

“withSize”设置小部件应有的列宽和行高的数量。例如,调用` withSize ( 1,1 ) ‘使得小部件在网格中占据一个单元格。注意一些小部件的最小尺寸可能大于指定尺寸,在这种情况下小部件将使用最小的支持尺寸。

withPosition设置窗口小部件左上角的行和列。行和列都索引为0,因此最上面的行是数字0,最左边的列也是数字0。如果指定了选项卡中任何窗口小部件的位置,则每个窗口小部件的位置也应设置为避免窗口小部件重叠。

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

将小部件添加到布局

如果选项卡中包含相关数据的小部件很多,那么将它们放置在较小的子组中而不是将其散布在选项卡中会很有用。就像使用Shuffleboard.getTab检索选项卡的句柄一样,可以使用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())
指令按钮按为升降机和爪子子系统添加的顺序组织。