Skip to content

PopupHelp

Tutorial Bubble with Arrow Positioning

The PopupHelp is a tutorial/help bubble widget with 9 arrow positions, style presets for different message types, smooth opacity animation, and optional auto-close. It powers the interactive tutorial system that guides operators step-by-step through the application.

Key Features

9 Arrow Positions

Top, Bottom, Left, Right, TopLeft, TopRight, BottomLeft, BottomRight, and None — the arrow automatically points toward the target element.

Style Presets

One call sets all colors atomically:

  • Info (blue) — general guidance
  • Success (green) — confirmation messages
  • Warning (orange) — caution notices
  • Error (red) — critical alerts

Opacity Animation

Smooth fade-in/fade-out with configurable easing curve and duration.

Auto-Close

Optional timer-based auto-dismissal after a configurable delay.

Main Properties

Property Type Description
Text_Title QString Bubble title text
Text_Content QString Bubble body text
Font_Title QFont Title font
Font_Content QFont Content font
Arrow_Position enum Arrow direction (Top, Bottom, Left, Right, corners, None)
Arrow_Size int Arrow triangle size
Arrow_Offset int Arrow offset from center
Style_Preset enum Info / Success / Warning / Error
Color_Background QVariant Bubble background color
Color_Title QVariant Title text color
Color_Content QVariant Content text color
Color_Border QVariant Border color
Icon_Path QString Optional icon SVG path
Icon_Size int Icon size
UI_CloseButtonVisible bool Show close (X) button
UI_AutoClose bool Enable auto-dismiss
AutoClose_Delay int Auto-close delay (ms)
Animation_Enabled bool Enable fade animation
Animation_Duration int Fade duration (ms)
Border_Radius int Corner radius
Max_Width int Maximum bubble width

Note: This widget exposes 40 configurable properties. The table above covers only a selection — dozens more are available for fine-tuned control over colors, fonts, padding, shadow, and alignment.

Usage Example in WinCC OA

XML Configuration (extended properties)

<extended>
  <prop name="Arrow_Position" type="ENUM">2</prop>
  <prop name="Border_Radius" type="INT">8</prop>
  <prop name="Animation_Enabled" type="BOOL">True</prop>
  <prop name="Animation_Duration" type="INT">200</prop>
  <prop name="UI_CloseButtonVisible" type="BOOL">True</prop>
  <script name="closed">closed()</script>
  <script name="closeClicked">closeClicked()</script>
</extended>

CTRL Initialization Script

main()
{
  // Show a tutorial bubble pointing down at a target widget
  EWO.Text_Title = "Step 1: Select a plant";
  EWO.Text_Content = "Click on any plant in the menu to view its real-time data.";
  EWO.setStylePreset(0); // Info (blue)
  EWO.Arrow_Position = 1; // Bottom — arrow points down
  EWO.showPopup();
}

// Auto-advance tutorial on close
void closed()
{
  dpSet("Tutorial.CurrentStep", dpGet("Tutorial.CurrentStep") + 1);
}

Available Signals

Signal Parameters Description
closed Bubble dismissed (any method)
closeClicked Close button clicked
popupClicked Bubble body clicked
shown Bubble became visible
hidden Bubble became hidden