RPA.Assistant

Create a button and execute the function as a callback when pressed.

Arguments

ArgumentTypeDefault value
labelstrnull
functionCallable, strnull
argsnull
locationVerticalLocationLeft
kwargsnull
param label:Text for the button
param function:Python function or Robot Keyword name, that will get *args and **kwargs passed into it

Usage

*** Keywords *** First View Add Heading Here is the first view of the app Add Button Change View Second View Second View Add Heading Let's build an infinite loop Add Button Change View First View
def first_view(): assistant = Assistant() assistant.add_heading("Here is the first view of the app") assistant.add_button("Change view", second_view) assistant.run_dialog() def second_view(): assistant = Assistant() assistant.add_heading("Let's build an infinite loop") assistant.add_button("Change view", first_view) assistant.run_dialog()

Add a checkbox element

Arguments

ArgumentTypeDefault value
namestrnull
labelstrnull
defaultboolFalse
param name:Name of result field
param label:Label text for checkbox
param default:Default checked state

Adds a checkbox that indicates a true or false value. The selection will be available in the name field of the result, and the label text will be shown next to the checkbox.

The boolean default value will define the initial checked state of the element.

Usage

*** Keywords *** Select checkboxes Add heading Enable features Add checkbox name=vault label=Enable vault default=True Add checkbox name=triggers label=Enable triggers default=False Add checkbox name=assistants label=Enable assistants default=True ${result}= Run dialog IF $result.vault Enable vault END
def select_checkboxes(): assistant = Assistant() assistant.add_heading("Enable features") assistant.add_checkbox(name="vault", label="Enable vault", default=True) assistant.add_checkbox(name="triggers", label="Enable triggers", default=False) assistant.add_checkbox(name="assistants", label="Enable assistants", default=True) result = assistant.run_dialog() if(result.vault): enable_vault()

Add a date input element.

Arguments

ArgumentTypeDefault value
namestrnull
defaultdate, str, NoneNone
labelstr, NoneNone
param name:Name of the result field
param default:The default set date
param label:Label for the date input field

Displays a date input. The selection the user makes will be available as a date object in the name field of the result. The default argument can be a pre-set date as object or string in "YYYY-MM-DD" format, otherwise the current date is used.

Usage

*** Keywords *** Select birthdate Add heading Enter your birthdate Add Date Input birthdate default=1993-04-26 ${result} = Run dialog Log To Console User birthdate year should be: ${result.birthdate.year}
def select_birthdate(): assistant = Assistant() assistant.add_heading("Enter your birthdate") assistant.add_date_input("birthdate", default="1993-04-26") result = assistant.run_dialog() print("User birthdate year should be: ", result.birthdate.year)

Add a drop-down element

Arguments

ArgumentTypeDefault value
namestrnull
optionsList[str], strnull
defaultstr, NoneNone
labelstr, NoneNone
param name:Name of result field
param options:List of drop-down options
param default:The default selection
param label:Label for input field

Creates a drop-down menu with the given options. The selection the user makes will be available in the name field of the result.

The default argument can be one of the defined options, and the dialog automatically selects that option for the input.

A custom label text can also be added.

Usage

*** Keywords *** Select user type from drop down Add heading Select user type Add drop-down ... name=user_type ... options=Admin,Maintainer,Operator ... default=Operator ... label=User type ${result}= Run dialog Log User type should be: ${result.user_type}
def select_user_type_from_drop_down(): assistant = Assistant() assistant.add_heading("Select user type") assistant.add_drop_down( name="user_type", options="Admin,Maintainer,Operator", default="Operator", label="User type" ) result = assistant.run_dialog() print("User type should be: ", result.user_type)

Add a file element, which links to a local file

Arguments

ArgumentTypeDefault value
pathstrnull
labelstr, NoneNone
param path:The path to the file
param label:A custom label text for the file

Adds a button which opens a local file with the corresponding default application. Can be used for instance to display generated files from the robot to the end-user.

Optionally a custom label can be given for the button text. By default uses the filename of the linked file.

Usage

*** Keywords *** Open file button ${path}= Generate order files Add heading Current orders Add file ${path} label=Current Run dialog
def open_file_button(): path = generate_order_files() assistant = Assistant() assistant.add_heading("Current orders") assistant.add_file(path, label="Current") assistant.run_dialog()

Add a file input element

Arguments

ArgumentTypeDefault value
namestrnull
labelstr, NoneNone
sourcestr, NoneNone
file_typestr, NoneNone
multipleboolFalse
param name:Name of result field
param label:Label for input field
param source:Default source directory
param file_type:Accepted file types
param multiple:Allow selecting multiple files

Adds a native file selection dialog for inputting one or more files. The list of selected files will be available in the name field of the result.

By default opens up in the user's home directory, but it can be set to a custom path with the source argument.

The argument file_type restricts the possible file extensions that the user can select. The format of the argument is as follows: pdf,png,svg. For instance, an argument to limit options to Excel files could be: xls,xlsx.

To allow selecting more than one file, the multiple argument can be enabled.

Usage

*** Keywords *** Multiple file selections # This can be any one file Add file input name=anything # This can be multiple files Add file input name=multiple multiple=True # This opens the select dialog to a custom folder Add file input name=src source=C:\Temp\Output\ # This restricts files to certain types Add file input name=types file_type=pdf # Every file input result is a list of paths ${result}= Run dialog FOR ${path} IN @{result.multiple} Log Selected file: ${path} END
def multiple_file_selections(): assistant = Assistant() # This can be any one file assistant.add_file_input(name="anything") # This can be multiple files assistant.add_file_input(name="multiple", multiple=True) # This opens the select dialog to a custom folder assistant.add_file_input(name="src", source="C:\Temp\Output") # This restricts files to certain types assistant.add_file_input(name="types", file_type="pdf") # Every file input result is a list of paths result = assistant.run_dialog() for path in result.multiple: print("Selected file: ", path)

Add multiple file elements according to the given file pattern

Arguments

ArgumentTypeDefault value
patternstrnull
param pattern:File matching pattern

See the keyword Add file for information about the inserted element itself.

The keyword uses Unix-style glob patterns for finding matching files, and the supported pattern expressions are as follow:

PatternMeaning
*Match everything
?Match any single character
[seq]Match any character in seq
[!seq]Match any character not in seq
**Match all files, directories, and subdirectories

If a filename has any of these special characters, they can be escaped by wrapping them with square brackets.

Usage

*** Keywords *** Open multiple files buttons # Add all excel files Add files *.xlsx # Add all log files in any subdirectory Add files **/*.log # Add all PDFs between order0 and order9 Add files order[0-9].pdf
def open_multiple_files_buttons(): assistant = Assistant() # Add all excel files assistant.add_file("*.xlsx") # Add all log files in any subdirectory assistant.add_file("**/*.log") # Add all PDFs between order0 and order9 assistant.add_file("order[0-9].pdf") assistant.run_dialog()

Add an icon from a large gallery of icons.

Arguments

ArgumentTypeDefault value
iconstrnull
colorstr, NoneNone
sizeint, None24
param icon:Corresponding flet icon name. Check https://gallery.flet.dev/icons-browser/ for a list of icons. Write the name in lower_case
param color:Color for the icon. Default depends on icon. Allowed values are colors from https://github.com/flet-dev/flet/blob/035b00104f782498d084c2fd7ee96132a542ab7f/sdk/python/packages/flet-core/src/flet_core/colors.py#L37 or ARGB/RGB (#FFXXYYZZ or #XXYYZZ).
param size:Integer size for the icon.

Usage

*** Keywords *** Add custom icon Add Heading Check icon Add Flet Icon icon_name=check_circle_rounded color=FF00FF size=48 Run Dialog
def add_custom_icon() assistant = Assistant() assistant.add_heading("Check icon") assistant.add_flet_icon(icon="check_circle_rounded", color="FF00FF", size="48") assistant.run_dialog()

Add a centered heading text element

Arguments

ArgumentTypeDefault value
headingstrnull
sizeSizeMedium
param heading:The text content for the heading
param size:The size of the heading

Supported size values are Small, Medium, and Large. By default uses the value Medium.

Usage

*** Keywords *** Add dialog heading Add heading User information size=Large Add heading Location size=Small Add text input address label=User address Run dialog
def add_dialog_heading(): assistant = Assistant() assistant.add_heading("User information", size="large") assistant.add_heading("Location", size="small") assistant.add_text_input("address", label="User address") assistant.run_dialog()

Add a hidden input element

Arguments

ArgumentTypeDefault value
namestrnull
valuestrnull
param name:Name of result feild
param value:Value for input

Adds a special hidden result field that is not visible to the user and always contains the given static value.

Can be used to keep user input together with already known values such as user IDs, or to ensure that dialogs with differing elements all have the same fields in results.

Usage

*** Keywords *** Get user information Add hidden input user_id ${USER_ID} Add text input username ${result}= Run dialog Enter user information ${result.user_id} ${result.username}
def get_user_information(): assistant = Assistant() user_id = "Your user value" assistant.add_hidden_input("user_id", user_id) assistant.add_text_input("username") result = assistant.run_dialog() enter_user_information(result.user_id, result.username)

Add an icon element from RPA.Assistant's short icon list.

Arguments

ArgumentTypeDefault value
variantIconnull
sizeint48
param variant:The icon type
param size:The size of the icon

Adds an icon which can be used to indicate status or the type of dialog being presented.

The currently supported icon types are:

NameDescription
SuccessA green check mark
WarningAn orange warning triangle
FailureA red cross or X mark

The size of the icon can also be changed, to a given height/width of pixels.

Usage

*** Keywords *** Confirmation dialog Add icon Warning size=64 Add heading Do you want to delete this order? Add submit buttons buttons=No,Yes ${result}= Run dialog
def confirmation_dialog(): assistant = Assistant() assistant.add_icon("warning", size="64") assistant.add_heading("Do you want to delete this order?") assistant.add_submit_buttons(buttons="No, Yes") result = assistant.run_dialog()

Add an image element, from a local file or remote URL

Arguments

ArgumentTypeDefault value
url_or_pathstrnull
widthint, NoneNone
heightint, NoneNone
param url_or_path:The location of the image
param width:The static width of the image, in pixels
param height:The static height of the image, in pixels

Adds an inline image to the dialog, which can either point to a local file path on the executing machine or to a remote URL. If it's a local file path it has to be absolute path.

By default the image is resized to fit the width of the dialog window, but the width and/or height can be explicitly defined to a custom value. If only one of the dimensions is given, the other is automatically changed to maintain the correct aspect ratio.

Usage

*** Keywords *** Display image Add image C:\Users\me\company-logo.png Add heading To start, please press the Continue button size=Small Add submit buttons Continue Run dialog

System Message: ERROR/3 (<string>, line 27)

Error in "code-block" directive: maximum 1 argument(s) allowed, 17 supplied.

.. code-block:: python def display_image(): assistant = Assistant() assistant.add_image("C:\Users\me\company-logo.png") assistant.add_heading("To start, please press the Continue button", size="small") assistant.add_submit_buttons("Continue") assistant.run_dialog()

Add a loading bar.

Arguments

ArgumentTypeDefault value
namestrnull
widthint16
bar_heightint16
colorstr, NoneNone
tooltipstr, NoneNone
valuefloat, NoneNone
param name:Name of the element
param width:Width of the bar
param bar_height:Height of the bar
param color:Color of the bar's stroke. Allowed values are colors from [https://github.com/flet-dev/flet/blob/035b00104f782498d084c2fd7ee96132a542ab7f/sdk/python/packages/flet-core/src/flet_core/colors.py#L37|Flet Documentation] (in the format black12, red500) or ARGB/RGB (#FFXXYYZZ or #XXYYZZ).XXYYZZ
param tooltip:Tooltip to be displayed on mouse hover.
param value:Between 0.0 and 1.0 if you want to manually control it's completion. Use None for indeterminate progress indicator.

Add a loading spinner.

Arguments

ArgumentTypeDefault value
namestrnull
widthint16
heightint16
stroke_widthint2
colorstr, NoneNone
tooltipstr, NoneNone
valuefloat, NoneNone
param name:Name of the element
param width:Width of the spinner
param height:Height of the spinner
param stroke_width:Width of the spinner's stroke
param color:Color of the spinner's stroke. Allowed values are colors from [https://github.com/flet-dev/flet/blob/035b00104f782498d084c2fd7ee96132a542ab7f/sdk/python/packages/flet-core/src/flet_core/colors.py#L37|Flet Documentation] (in the format black12, red500) or ARGB/RGB (#FFXXYYZZ or #XXYYZZ).XXYYZZ
param tooltip:Tooltip to be displayed on mouse hover.
param value:Between 0.0 and 1.0 if you want to manually control it's completion. If None it will spin endlessy.

Create a button that leads to the next UI page, calling the passed keyword or function, and passing current form results as first positional argument to it.

Arguments

ArgumentTypeDefault value
labelstrnull
functionCallable, strnull
param label:Text for the button
param function:Python function or Robot Keyword name, that will take form results as its first argument

Usage

*** Keywords *** Retrieve User Data # Retrieves advanced data that needs to be displayed Main Form Add Heading Username input Add Text Input name=username_1 placeholder=username Add Next Ui Button Show customer details Customer Details Customer Details [Arguments] ${form} ${user_data}= Retrieve User Data ${form}[username_1] Add Heading Retrieved Data Add Text ${user_data}[phone_number] Add Text ${user_data}[address]
def main_form(): assistant = Assistant() assistant.add_heading("Username input") assistant.add_text_input("username_1", placeholder="username") assistant.add_next_ui_button("Show customer details", customer_details) assistant.run_dialog() def customer_details(form): assistant = Assistant() user_data = retrieve_user_data(form.username_1) assistant.add_heading("Retrieved Data") assistant.add_text(user_data[phone_number]) assistant.add_text(user_data[address]) assistant.run_dialog()

Add a password input element

Arguments

ArgumentTypeDefault value
namestrnull
labelstr, NoneNone
placeholderstr, NoneNone
param name:Name of result field
param label:Label for field
param placeholder:Placeholder text in input field

Adds a text field that hides the user's input. The entered content will be available in the name field of the result.

For customizing the look of the input, the label text can be given to add a descriptive label and the placholder text can be given to act as an example of the input value.

Usage

*** Keywords *** Change password Add heading Change password Add text input username label=Current username Add password input password label=New password Add submit buttons buttons=Submit ${result}= Run dialog Change user password ${result.username} ${result.password}
def change_password(): assistant = Assistant() assistant.add_heading("Change password") assistant.add_text_input("username", label="Current username") assistant.add_password_input("password", label="New password") assistant.add_submit_buttons(buttons="Submit") result = assistant.run_dialog() change_user_password(result.username, result.password)

Add radio button elements

Arguments

ArgumentTypeDefault value
namestrnull
optionsList[str], strnull
defaultstr, NoneNone
labelstr, NoneNone
param name:Name of result field
param options:List of drop-down options
param default:The default selection
param label:Label for input field

Creates a set of radio buttons with the given options. The selection the user makes will be available in the name field of the result.

The default argument can be one of the defined options, and the dialog automatically selects that option for the input.

A custom label text can also be added.

Usage

*** Keywords *** Select user type from radio buttons Add heading Select user type Add radio buttons ... name=user_type ... options=Admin,Maintainer,Operator ... default=Operator ... label=User type ${result}= Run dialog Log User type should be: ${result.user_type}
def select_user_type_from_radio_buttons(): assistant = Assistant() assistant.add_heading("Select user type") assistant.add_radio_buttons( name="user_type", options="Admin,Maintainer,Operator", default="Operator", label="User type" ) result = assistant.run_dialog() print("User type should be: ", result.user_type)

Add a slider input.

Arguments

ArgumentTypeDefault value
namestrnull
slider_minint, float0
slider_maxint, float100
thumb_text{value}
stepsint, NoneNone
defaultint, float, NoneNone
decimalsint, None1
param name:Name of result field
param slider_min:Minimum value of the slider
param slider_max:Maximum value of the slider
param thumb_label:Text to display when the slider is being slided. Use the placeholder {value} for the number. (thumb text {value%} will display values: 0%, 100%)
param steps:Amount of steps for the slider. If None, the slider will be continuous. For integer output, specify a steps value where all the steps will be integers, or implement rounding when retrieving the result.
param default:Default value for the slider. Must be between min and max.
param decimals:How many decimals should the value have and show.
*** Keywords *** Create Percentage Slider Add Text Percentage slider Add Slider name=percentage slider_min=0 slider_max=100 thumb_text={value}% steps=100 round=1
def create_percentage_slider(): assistant = Assistant() assistant.add_text("Percentage slider") assistant.add_slider( name="percentage", slider_min=0, slider_max=100, thumb_text="{value}%", steps=100, decimals=1 ) assistant.run_dialog()

Add custom submit buttons

Arguments

ArgumentTypeDefault value
buttonsList[str], strnull
defaultstr, NoneNone
param buttons:Submit button options
param default:The primary button

The result field will always be called submit and will contain the pressed button text as a value.

If one of the custom options should be the preferred option, the default argument controls which one is highlighted with an accent color.

Usage

*** Keywords *** Delete user warning Add icon Warning Add heading Delete user ${username}? Add submit buttons buttons=No,Yes default=Yes ${result}= Run dialog IF $result.submit == "Yes" Delete user ${username} END
def delete_user_warning(): assistant = Assistant() username = "user_01" assistant.add_icon("warning") assistant.add_heading(f"Delete user {username}?") assistant.add_submit_buttons(buttons="No, Yes", default="Yes") result = assistant.run_dialog() if result.submit == "Yes": delete_user(username)

Add a text paragraph element, for larger bodies of text

Arguments

ArgumentTypeDefault value
textstrnull
sizeSizeMedium
param text:The text content for the paragraph
param size:The size of the text

Supported size values are Small, Medium, and Large. By default uses the value Medium.

Usage

*** Keywords *** Show error dialog Add heading An error occurred Add text There was an error while requesting user information Add text ${error} size=Small Run dialog
def show_error_dialog(): error = "Your error message" assistant = Assistant() assistant.add_heading("An error occurred") assistant.add_text("There was an error while requesting user information") assistant.add_text(f"{error}", size="small") assistant.run_dialog()

Add a text input element

Arguments

ArgumentTypeDefault value
namestrnull
labelstr, NoneNone
placeholderstr, NoneNone
validationCallable, str, NoneNone
defaultstr, NoneNone
requiredboolFalse
minimum_rowsint, NoneNone
maximum_rowsint, NoneNone
param name:Name of result field
param label:Label for field
param placeholder:Placeholder text in input field
param validation:Validation function for the input field
param default:Default value if the field wasn't completed
param required:If true, will display an error if not completed
param minimum_rows:Minimum number of rows to display for the input field
param maximum_rows:Maximum number of rows to display for the input field, the input content can be longer but a scrollbar will appear

Adds a text field that can be filled by the user. The entered content will be available in the name field of the result.

For customizing the look of the input, the label text can be given to add a descriptive label and the placholder text can be given to act as an example of the input value.

The default value will be assigned to the input field if the user doesn't complete it. If provided, the placeholder won't be shown. This is None by default. Also, if a default value is provided and the user deletes it, None will be the corresponding value in the results dictionary.

Usage

*** Keywords *** Send feedback Add heading Send feedback Add text input email label=E-mail address Add text input message ... label=Feedback ... placeholder=Enter feedback here ${result}= Run dialog Send feedback message ${result.email} ${result.message}

Validation example:

*** Keywords *** Validate Email [Arguments] ${email} # E-mail specification is complicated, this matches that the e-mail has # at least one character before and after the @ sign, and at least one # character after the dot. ${regex}= Set Variable ^.+@.+\..+ ${valid}= Run Keyword And Return Status Should Match Regexp ${email} ${regex} IF not $valid RETURN Invalid email address END Open Dialog Add heading Send feedback Add text input email ... label=Email ... validation=Validate Email ${result}= Run dialog Log ${result.email}
import re def validate_email(email): # E-mail specification is complicated, this matches that the e-mail has # at least one character before and after the @ sign, and at least one # character after the dot. regex = r"^.+@.+\..+" valid = re.match(regex, email) if not valid: return "Invalid email address" def open_dialog(): assistant.add_heading("Send feedback") assistant.add_text_input("email", label="Email", validation=validate_email) result = run_dialog() print(result.email)

Same as Run Dialog it will create a dialog from all the defined elements and block until the user has handled it. It will also add by default a submit and close buttons.

Arguments

ArgumentTypeDefault value
timeoutint180
optionsAnynull
param timeout:Time to wait for dialog to complete, in seconds
param options:Options for the dialog

Returns a result object with all input values.

For more information about possible options for opening the dialog, see the documentation for the keyword Run Dialog.

Usage

*** Keywords *** Ask user dialog Add heading Please enter your username Add text input name=username ${result}= Ask User Log The username is: ${result.username}
def ask_user_dialog(): assistant = Assistant() assistant.add_heading("Please enter your username") assistant.add_text_input("username") result = assistant.ask_user() print("The username is: ", result.username)

Clear dialog and results while it is running.

Closes previously opened Column.

Raises LayoutError if called with no Column open, or if another layout element was opened more recently than a Column.

Close previously opened container.

Raises LayoutError if called with no Row open, or if another layout element was opened more recently than a row.

Close previously opened navbar.

Raises LayoutError if called with no Row open, or if another layout element was opened more recently than a row.

Close previously opened row.

Raises LayoutError if called with no Row open, or if another layout element was opened more recently than a row.

Close previously opened Stack.

Raises LayoutError if called with no Stack open, or if another layout element was opened more recently than a Stack.

Open a Column layout container. Following Add <element> calls will add items into that Column until Close Column is called.

*** Keywords *** Double Column Layout Open Row Open Column Add Text First item in the first column Add Text Second item on the first column Close Column Open Column Add Text First item on the second column Close Column Close Row
def double_column_layout(): assistant = Assistant() assistant.open_row() assistant.open_column() assistant.add_text("First item in the first column") assistant.add_text("Second item on the first column") assistant.close_column() assistant.open_column() assistant.add_text("First item on the second column") assistant.close_column() assistant.close_row() assistant.run_dialog()

Open a single element container. The following Add <element> calls adds an element inside the container. Can be used for styling elements.

Arguments

ArgumentTypeDefault value
marginint, None5
paddingint, NoneNone
widthint, NoneNone
heightint, NoneNone
background_colorstr, NoneNone
locationLocation, Tuple[int, int], NoneNone
param margin:

How much margin to add around the container. RPA.Assistant adds by default a container of margin 5 around all elements, to have a smaller margin use containers with smaller margin value for elements.

param padding:

How much padding to add around the content of the container.

param width:

Width of the container.

param height:

Height of the container.

param bgcolor:

Background color for the container. Default depends on icon. Allowed values are colors from [https://github.com/flet-dev/flet/blob/035b00104f782498d084c2fd7ee96132a542ab7f/sdk/python/packages/flet-core/src/flet_core/colors.py#L37|Flet Documentation] (in the format black12, red500) or ARGB/RGB (#FFXXYYZZ or #XXYYZZ).XXYYZZ

param location:

Where to place the container (A Location value or tuple of ints). Only works inside a Stack layout element.

To use any Center___ or ___Center locations you must define width and height to the element.

*** Keywords *** Padded Element With Background Open Container padding=20 background_color=blue500 Add Text sample text Close Container
def padded_element_with_background(): assistant = Assistant() assistant.open_container(padding=20, background_color="blue500") assistant.add_text("Sample text") assistant.close_container() assistant.run_dialog()

Create a Navigation Bar. Following Add <element> calls will add items into the Navbar until Close Navbar is called.

Arguments

ArgumentTypeDefault value
titlestr, NoneNone

Navbar doesn't clear when Clear Dialog is called.

Only one Navbar can be initialized at a time. Trying to make a second one will raise a LayoutError.

*** Keywords *** Go To Start Menu Add Heading Start menu Add Text Start menu content Assistant Navbar Open Navbar title=Assistant Add Button menu Go To Start Menu Close Navbar
def go_to_start_menu(): assistant = Assistant() assistant.add_heading("Start menu") assistant.add_text("Start menu content") assistant.run_dialog() def assistant_navbar(): assistant = Assistant() assistant.open_navbar(title="Assistant") assistant.add_button("menu", go_to_start_menu) assistant.close_navbar() assistant.run_dialog()

Open a row layout container. Following Add <element> calls will add items into that row until Close Row is called.

*** Keywords *** Side By Side Elements Open Row Add Text First item on the row Add Text Second item on the row Close Row
def side_by_side_elements(): assistant = Assistant() assistant.open_row() assistant.add_text("First item on the row") assistant.add_text("Second item on the row") assistant.close_row() assistant.run_dialog()

Create a "Stack" layout element. Stack can be used to position elements absolutely and to have overlapping elements in your layout. Use Container's top and left arguments to position the elements in a stack.

Arguments

ArgumentTypeDefault value
widthint, NoneNone
heightint, NoneNone
*** Keywords *** Absolutely Positioned Elements # Positioning containers with relative location values requires # absolute size for the Stack Open Stack height=360 width=360 Open Container width=64 height=64 location=Center Add Text center Close Container Open Container width=64 height=64 location=TopRight Add Text top right Close Container Open Container width=64 height=64 location=BottomRight Add Text bottom right Close Container Close Stack
def absolutely_positioned_elements(): # Positioning containers with relative location values requires # absolute size for the Stack assistant = Assistant() assistant.open_stack(height=360, width=360) assistant.open_container(width=64, height=64, location=Center) assistant.add_text("center") assistant.close_container() assistant.open_container(width=64, height=64, location=TopRight) assistant.add_text("top right") assistant.close_container() assistant.open_container(width=64, height=64, location=BottomRight) assistant.add_text("bottom right") assistant.close_container() assistant.close_stack() assistant.run_dialog()

Can be used to update UI elements when adding elements while dialog is running

Create a dialog from all the defined elements and block until the user has handled it.

Arguments

ArgumentTypeDefault value
timeoutint180
titlestrAssistant
heightint, typing_extensions.Literal['AUTO'][AUTO]AUTO
widthint480
on_topboolFalse
locationWindowLocation, Tuple[int, int], NoneNone
param timeout:Time to wait for dialog to complete, in seconds
param title:Title of dialog
param height:Height of dialog (in pixels or 'AUTO')
param width:Width of dialog (in pixels)
param on_top:Show dialog always on top of other windows
param location:Where to place the dialog (options are Center, TopLeft, or a tuple of ints)

If the location argument is None it will let the operating system place the window.

Returns a result object with all input values.

When the dialog closes elements are cleared.

Usage

*** Keywords *** Open dialog Add heading Please enter your username Add text input name=username ${result}= Run dialog Log The username is: ${result.username}
def open_dialog(): assistant = Assistant() assistant.add_heading("Please enter your username") assistant.add_text_input("username") result = assistant.run_dialog() print("The username is: ", result.username)

Set dialog title when it is running.

Arguments

ArgumentTypeDefault value
titlestrnull