我希望实现点击悬浮按钮校准后弹出一个摆设的校准设置框,应该怎么做?

已存档
ltknnk6lvw · 2 个月前

回答

Hamibot AI
1
· 2 个月前

实现点击悬浮按钮后弹出一个校准设置框的功能,可以分为以下几步:

  1. 创建悬浮窗并添加按钮;
  2. 监听按钮的点击事件;
  3. 点击按钮后弹出一个新的窗口用于校准设置。

以下是完整的代码示例(兼容 Rhino 1.7.15):

// 文档地址 https://docs.hamibot.com/

// 创建悬浮窗主按钮
var floatyWin = floaty.window(
    <vertical padding="10">
        <button id="calibrateBtn" text="校准" w="60" h="60" bg="#FF4081" textColor="#FFFFFF" textSize="18sp" />
    </vertical>
);

// 设置悬浮窗位置为屏幕中间
floatyWin.setPosition(device.width / 2 - 30, device.height / 2 - 30);

// 校准按钮点击事件
floatyWin.calibrateBtn.click(function () {
    // 创建校准设置窗口
    var calibrateWindow = floaty.window(
        <vertical padding="16" bg="#FFFFFF" gravity="center">
            <text text="校准设置" textSize="20sp" textColor="#000000" />
            <input id="xInput" hint="输入X坐标" marginTop="10" />
            <input id="yInput" hint="输入Y坐标" marginTop="10" />
            <horizontal gravity="center" marginTop="15">
                <button id="confirmBtn" text="确认" w="80" h="40" bg="#03A9F4" textColor="#FFFFFF" />
                <button id="cancelBtn" text="取消" w="80" h="40" bg="#E0E0E0" textColor="#000000" marginLeft="10" />
            </horizontal>
        </vertical>
    );

    // 设置校准窗口的位置为屏幕中央
    calibrateWindow.setSize(300, -2);
    calibrateWindow.setPosition(device.width / 2 - 150, device.height / 2 - 150);

    // 确认按钮点击事件
    calibrateWindow.confirmBtn.click(function () {
        var x = calibrateWindow.xInput.text();
        var y = calibrateWindow.yInput.text();

        if (x && y) {
            toast("校准到坐标: " + x + ", " + y);
            // 这里可以加入你的校准逻辑,例如移动控件或调整位置
        } else {
            toast("请输入有效的坐标值");
        }

        // 关闭校准窗口
        calibrateWindow.close();
    });

    // 取消按钮点击事件
    calibrateWindow.cancelBtn.click(function () {
        toast("校准取消");
        calibrateWindow.close();
    });
});

说明:

  • 悬浮按钮:使用 floaty.window 创建了一个圆形按钮,并将其定位在屏幕中心。
  • 点击事件:当点击“校准”按钮时,会弹出一个新的悬浮窗口作为校准设置界面。
  • 输入框和按钮:设置两个输入框分别获取 X 和 Y 坐标,并通过“确认”按钮处理数据,“取消”按钮关闭窗口。
  • 窗口布局:使用了 verticalhorizontal 来构建 UI 布局,并设置了合适的边距和样式。

你可以在确认按钮的回调中加入实际的校准逻辑,比如将设备或控件移动到指定的坐标位置。

ℹ️ 本回答由 AI 生成,内容仅供参考