步骤 1 - 创建速度指针

在本教程的这一步骤中,您将学习将速度指针添加到仪表、调整其位置并使其反映您创建的属性的值的变化。

获取教程

要获取该教程,请在 Kanzi Studio 的 Quick Start 窗口中点击 Projects,然后选择 Tutorials 选项卡。在 Gauges 教程旁点击 下载。

Kanzi Studio 会将教程下载到 <KanziWorkspace>/Tutorials 目录。您可以找到:

  • 位于 <KanziWorkspace>/Tutorials/Gauges/Assets 目录中的教程起点工程。

  • 位于 <KanziWorkspace>/Tutorials/Gauges/Completed 目录中的已完成教程。

打开工程并添加速度指针

在本节中,您将打开工程,调整 Preview,并将速度指针添加到仪表中。

要打开工程并添加速度指针:

  1. 在 Kanzi Studio 的 Quick Start 窗口中点击 Projects,然后选择 Tutorials 选项卡。在 Gauges 教程旁点击 Open,然后选择 Start project。

    该项目包含 Gauges Image 节点,该节点用作本教程中所有仪表的背景,以及 Guides Image 节点,您可以使用它来精确设置仪表中指针的枢轴点。

    小技巧

    如果您无法在 Preview 中看到所有三个仪表,您可以在 Preview 的右上角调整 Preview 缩放级别。

    ../../_images/adjust-the-preview-zoom-level.png

    小技巧

    Preview 的背景默认情况下是黑色的。要使您的内容在 Preview 处于 Interact 模式 交互模式 时从背景中脱颖而出,您可以设置 Preview Background Color:

    • 对于您的所有 Kanzi Studio 项目,请在 Edit > User Preferences 中。

    • 对于特定的 Kanzi Studio 项目,请在 Project > Properties 中。

    请参阅 设置 Preview 的背景颜色。

  2. 从 Kanzi Studio UI 底部的 Assets 中,拖动 SpeedNeedle 图像并将其放到 Preview 中的 Gauges 上。

    当您将图像从 Assets 拖动到 Preview 时,Kanzi Studio 会创建一个新的 Image 节点,该节点显示您拖动的图像并将其放置在屏幕的左上角。在下一节中,您将 SpeedNeedle 节点定位到其正确位置。

    ../../_images/drag-speedneedle.png

调整 SpeedNeedle 的位置。

在 Kanzi Studio 中,您可以使用 Preview 工具调整 Preview 中节点的位置,或者通过在 Node Tree 中选择节点并在 Properties 中调整节点属性的值。在本节中,您将结合使用这两种方法。

在本节中,您将 SpeedNeedle 放置在速度表的中心,并调整其原点,以便其围绕表的中心正确旋转。

小技巧

要确保节点的精确位置,创建一个图像,画出界面中所有关键元素的确切位置。将指导图像导入到您的项目中,并在定位节点时将其用作指导。本教程中的项目包含这样一个图像。

要调整 SpeedNeedle 的位置:

  1. 在 Node Tree 中,选择 Guides 节点并按下 Ctrl H 以显示可用于设置仪表中指针精确位置的指南。

    ../../_images/guides-in-the-project-hidden.png ../../_images/guides-in-the-project.png ../../_images/guides-in-the-preview.png
  2. 在 Preview 中,使用 Node tool image0 来选择 SpeedNeedle。

    ../../_images/select-speedneedle-in-the-preview.png
  3. 在 Node tool 中点击顶部中心方块 image1,将 SpeedNeedle 节点对齐到其父节点 RootNode 节点的顶部中心。

    ../../_images/align-speedneedle-top-center.png
  4. 在 Node tool 中,单击 image2 并选择 Render Transformation 作为目标转换。

    您可以通过以下方式应用变换:

    • 布局变换是在应用布局通道前对项进行变换。

    • 渲染变换是在应用布局通道后、渲染前对项进行变换。

    始终使用 Render Transformation,除非您知道必须重新计算布局。

    ../../_images/select-render-transform1.png
  5. 在 Preview 中选择 Node tool node-tool,然后单击 snap 以禁用对节点和指南的捕捉。

    当您禁用捕捉功能时,您可以使用 Node tool 在 Preview 中移动节点,以便它不会捕捉到节点或参考线。

  6. 使用 Node tool 将指针的底部精确放置在 Guides 中的十字准线正上方。

    小技巧

    当您拖动具有 Node tool 的节点时,按住 Shift 键以沿真正的水平或垂直线移动节点。

    ../../_images/speedneedle-on-crosshair.png
  7. 在 Node Tree 中选择 SpeedNeedle 节点,在 Properties 中右键单击,选择 Add Property > Transform 2D > Render Transformation Origin,并设置:

    • X 属性为 0,5。

    • Y 属性为 0,9。

    在 Kanzi 中,默认情况下,所有 2D 节点的原点位于节点的左上角。因为您想围绕指针的底部中心旋转指针,所以您必须使用 Render Transformation Origin 将支点放置在那里。

    ../../_images/speedneedle-in-project.png ../../_images/add-render-transformation-origin.png ../../_images/speedneedle-render-transformation-origin-set.png

使用自定义属性控制 SpeedNeedle。

属性提供了指定和检查节点的状态、外观和行为的手段。例如,属性可以定义颜色、指示按钮是否被按下或指定项目的对齐方式。

在本节中,您将创建并使用自定义属性来控制仪表中 SpeedNeedle 的位置。

在本节中,您将学习创建自定义属性类型并用其控制 SpeedNeedle 节点的旋转。

要使用自定义属性控制 SpeedNeedle 节点:

  1. 在 Library 中,按 Alt 并右键单击 Property Types 并选择 Property Type。

    ../../_images/create-property-type.png
  2. 在 New Property Type 窗口中,设置:

    • Name 到 Gauges.Speed

    • Display Name 到 Speed

    • Category 到 Gauges

    • Data Type 到 Integer

    • 将 Lower Bound 设置为 0。

    • Upper Bound 到 240。

    单击 Save 以创建具有您定义的属性的属性类型。

    您可以使用自定义属性类型控制 Gauges 节点中 SpeedNeedle 节点的位置。

    ../../_images/create-speed-property.png
  3. 在 Node Tree 中选择 Gauges 节点,在 Properties 中右键单击,然后选择 Add Property > Gauges > Speed。

    ../../_images/gauges-in-project.png ../../_images/add-speed-property1.png
  4. 在 Node Tree 中选择 SpeedNeedle 节点,在 Properties 中点击 + Add Binding,并在 Binding Editor 中设置:

    • Property 到 Render Transformation

    • Property Field 到 Rotation Z

    • Expression 到

      {@../Gauges/Gauges.Speed} - 140
      

      当 Speed 属性的值为 0 时,您必须从该属性的值中减去 140,以便在仪表上正确地将指针定位在值 0。

    单击 Save。

    通过此修饰符绑定,您可以使用在上一步中添加的 Gauges 节点中的 Speed 属性围绕其 z 轴旋转 SpeedNeedle。

    ../../_images/speedneedle-in-project.png ../../_images/speedneedle-binding1.png

    小技巧

    当您在 Binding Editor 中为绑定编写表达式时,向表达式中添加节点及其属性的最快且最准确的方法是将它们从 Properties 拖动到 Binding Editor 中的 Expression 编辑器。

    例如,要在 Gauges 节点中添加 Speed 属性,在 Node Tree 中选择 Gauges 节点,并从 Properties 将 Speed 属性拖到 Binding Editor 中的 Expression 字段。

现在可以通过调整 Gauges 节点中 Speed 属性的值来旋转指针。

将当前速度显示为数值

在本节中,您将学习创建将当前速度显示为数值的节点。

要将当前速度显示为数值:

  1. 在 Node Tree 按 Alt 并右键单击 的 Gauges > SpeedView 节点中,选择 Text Block 2D,并将该节点命名为 SpeedValue。

    SpeedView 是一个 Stack Layout 2D 节点。Stack Layout 节点根据其 Direction 属性在轴上堆叠其子节点。SpeedView 包含显示速度单位的 Text Block 2D 节点 SpeedUnit。

    在本节中,您使用 SpeedValue 节点来显示 SpeedNeedle 的当前值。

    ../../_images/speedvalue-in-project.png
  2. 在 Node Tree 中,将 SpeedValue 节点拖到 SpeedUnit 节点上方,以在仪表中显示速度单位上方的速度值。

    ../../_images/speedvalue-in-project-final-position.png ../../_images/speedvalue-in-gauges.png
  3. 在 Node Tree 中选择 SpeedValue 节点,并在 Properties 中:

    • 单击 + Add Binding,然后在 Binding Editor 中设置:

      • Property 到 Text

      • Expression 到

        {@../../Gauges.Speed}
        

      单击 Save。

      通过此绑定,您可以在 SpeedValue 节点中显示 Gauges.Speed 属性的当前值。

      小技巧

      您可以右键单击某个属性并选择 Create Binding,开始为该属性创建绑定。

      这样,您会自动将该属性添加到 Binding Editor 中。

      ../../_images/properties-create-binding.png
    • 添加并设置:

      • Font Size 到 80

      • Fixed Character Width 到 44

        使用 Fixed Character Width 属性将任何字体转换为等宽字体。

    ../../_images/speedvalue-binding.png ../../_images/speedvalue-properties.png

    当您更改 Gauges 节点中 Speed 属性的值时,您会旋转指针并在 SpeedValue 节点中显示该属性的值。

另请参阅

使用绑定

在 Preview 中编辑您的应用程序。

控制 Preview

创建属性类型

属性系统