Adds a button control into your app.
In case of Upload, you can specify Multiple to accept multiple files.
Properties
These are the setter and getter properties for the addButton Component.
Example - Button variants
class Main extends App
{
onStart()
{
this.main = ui.addLayout( "main", "Linear", "VCenter", 1, 1 )
this.main.setChildMargins( 0.01, 0.01, 0.01, 0.01 )
this.btn1 = ui.addButton( this.main, "Button", "Contained" )
this.btn1.setOnTouch( this.onTouch )
this.btn2 = ui.addButton( this.main, "Button", "Outlined" )
this.btn2.setOnTouch( this.onTouch )
this.btn3 = ui.addButton( this.main, "Button", "Text" )
this.btn3.setOnTouch( this.onTouch )
}
onTouch()
{
ui.showPopup( "Button is touch!" )
}
}
from hybrid import ui
def OnStart():
main = ui.addLayout( "main", "Linear", "VCenter", 1, 1 )
main.setChildMargins( 0.01, 0.01, 0.01, 0.01 )
btn1 = ui.addButton( main, "Button", "Contained" )
btn1.setOnTouch( onTouch )
btn2 = ui.addButton( main, "Button", "Outlined" )
btn2.setOnTouch( onTouch )
btn3 = ui.addButton( main, "Button", "Text" )
btn3.setOnTouch( onTouch )
def onTouch(event):
ui.showPopup( "Button is touch!" )
Example - Button theme colors
class Main extends App
{
onStart()
{
this.main = ui.addLayout("main", "Linear", "VCenter", 1, 1)
this.main.setChildMargins(0.01, 0.01, 0.01, 0.01)
this.btn1 = ui.addButton(this.main, "Primary", "Contained,Primary")
this.btn1.setOnTouch( this.onTouch )
this.btn2 = ui.addButton(this.main, "Secondary", "Outlined,Secondary")
this.btn2.setOnTouch( this.onTouch )
this.btn3 = ui.addButton(this.main, "Default", "Text,Default")
this.btn3.setOnTouch( this.onTouch )
}
onTouch()
{
ui.showPopup( "Button is touch!" )
}
}
from hybrid import ui
def OnStart():
main = ui.addLayout("main", "Linear", "VCenter", 1, 1)
main.setChildMargins(0.01, 0.01, 0.01, 0.01)
btn1 = ui.addButton(main, "Primary", "Contained,Primary")
btn1.setOnTouch( onTouch )
btn2 = ui.addButton(main, "Secondary", "Outlined,Secondary")
btn2.setOnTouch( onTouch )
btn3 = ui.addButton(main, "Default", "Text,Default")
btn3.setOnTouch( onTouch )
def onTouch(event):
ui.showPopup( "Button is touch!" )
Example - Button sizes
class Main extends App
{
onStart()
{
this.main = ui.addLayout("main", "Linear", "VCenter", 1, 1)
this.main.setChildMargins(0.01, 0.01, 0.01, 0.01)
this.btn1 = ui.addButton(this.main, "Small", "Contained,Primary,Small")
this.btn1.setOnTouch( this.onTouch )
this.btn2 = ui.addButton(this.main, "Medium", "Contained,Primary,Medium")
this.btn3 = ui.addButton(this.main, "Large", "Contained,Primary,Large")
}
onTouch()
{
ui.showPopup( "Button is touch!" )
}
}
from hybrid import ui
def OnStart():
main = ui.addLayout("main", "Linear", "VCenter", 1, 1)
main.setChildMargins(0.01, 0.01, 0.01, 0.01)
btn1 = ui.addButton(main, "Small", "Contained,Primary,Small")
btn1.setOnTouch( onTouch )
btn2 = ui.addButton(main, "Medium", "Contained,Primary,Medium")
btn3 = ui.addButton(main, "Large", "Contained,Primary,Large")
def onTouch(event):
ui.showPopup( "Button is touch!" )
Example - Button tooltips
class Main extends App
{
onStart()
{
this.main = ui.addLayout("main", "Linear", "VCenter", 1, 1)
this.main.setChildMargins(0, 0.05, 0, 0.05)
this.btn1 = ui.addButton(this.main, "Left", "Contained,Primary")
this.btn1.setToolTip("Tooltip on the left", "left")
this.btn2 = ui.addButton(this.main, "Top", "Contained,Primary")
this.btn2.setToolTip("Tooltip on the top", "top")
this.btn3 = ui.addButton(this.main, "Right", "Contained,Primary")
this.btn3.setToolTip("Tooltip on the right", "right")
this.btn4 = ui.addButton(this.main, "Bottom", "Contained,Primary")
this.btn4.setToolTip("Tooltip on the bottom", "bottom")
}
}
from hybrid import ui
def OnStart():
main = ui.addLayout("main", "Linear", "VCenter", 1, 1)
main.setChildMargins(0, 0.05, 0, 0.05)
btn1 = ui.addButton(main, "Left", "Contained,Primary")
btn1.setToolTip("Tooltip on the left", "left")
btn2 = ui.addButton(main, "Top", "Contained,Primary")
btn2.setToolTip("Tooltip on the top", "top")
btn3 = ui.addButton(main, "Right", "Contained,Primary")
btn3.setToolTip("Tooltip on the right", "right")
btn4 = ui.addButton(main, "Bottom", "Contained,Primary")
btn4.setToolTip("Tooltip on the bottom", "bottom")
Example - Button with icons
class Main extends App
{
onStart()
{
this.main = ui.addLayout( "main", "Linear", "VCenter", 1, 1 )
this.main.setChildMargins("12px", "12px", "12px", "12px")
this.btn1 = ui.addButton(this.main, "Send", "Primary")
this.btn1.icon = "send"
this.btn2 = ui.addButton(this.main, "Add to cart", "Secondary")
this.btn2.icon = "shopping_cart"
this.btn3 = ui.addButton(this.main, "android", "Primary,Icon")
this.btn4 = ui.addButton(this.main, "settings", "Secondary,Icon")
}
}
from hybrid import ui
def OnStart():
main = ui.addLayout( "main", "Linear", "VCenter", 1, 1 )
main.setChildMargins("12px", "12px", "12px", "12px")
btn1 = ui.addButton(main, "Send", "Primary")
btn1.icon = "send"
btn2 = ui.addButton(main, "Add to cart", "Secondary")
btn2.icon = "shopping_cart"
btn3 = ui.addButton(main, "android", "Primary,Icon")
btn4 = ui.addButton(main, "settings", "Secondary,Icon")
Example - Buttons with badges
class Main extends App
{
onStart()
{
this.main = ui.addLayout("main", "Linear", "VCenter", 1, 1)
this.main.setChildMargins(0.01, 0.01, 0.01, 0.01)
this.btn1 = ui.addButton(this.main, "android", "Primary,Icon")
this.btn2 = ui.addButton(this.main, "settings", "Primary,Icon")
this.btn2.setBadge( 5 )
this.btn3 = ui.addButton(this.main, "With Badge", "Secondary,Outlined")
this.btn3.setBadge("New", "Primary")
}
}
from hybrid import ui
def OnStart():
main = ui.addLayout("main", "Linear", "VCenter", 1, 1)
main.setChildMargins(0.01, 0.01, 0.01, 0.01)
btn1 = ui.addButton(main, "android", "Primary,Icon")
btn2 = ui.addButton(main, "settings", "Primary,Icon")
btn2.setBadge( 5 )
btn3 = ui.addButton(main, "With Badge", "Secondary,Outlined")
btn3.setBadge("New", "Primary")
Example - Upload button
class Main extends App
{
onStart()
{
this.main = ui.addLayout("main", "Linear", "VCenter", 1, 1)
this.btn = ui.addButton(this.main, "Upload File", "Primary,Upload")
this.btn.icon = "backup"
this.btn.setOnFileSelect( this.onFileSelect )
}
onFileSelect( files )
{
const file = files[ 0 ]
ui.showPopup( `${file.name} is selected.` )
}
}
from hybrid import ui
def OnStart():
main = ui.addLayout("main", "Linear", "VCenter", 1, 1)
btn = ui.addButton(main, "Upload File", "Primary,Upload")
btn.icon = "backup"
def onFileSelect(files):
file = files[0]
ui.showPopup( f"{file.name} is selected." )
Methods
The following methods are available on the Button object:
Boolean: Sets or returns the disabled state of the control.
Boolean: Returns whether the control is visible or not.
Number: Fraction of the parent width. [0-1]
Number: Fraction of the parent height. [0-1]
Number: The time in milliseconds.
Number: The z-index. A negative value behaves like `sendBackward` method.
Number: The z-index. A positve value behaves like `bringForward` method.
Number: Border-left thickness in pixels.
Number: Top-left corner radius.
Number: Top-right corner radius.
Number: Bottom-left corner radius.
Number: Bottom-right corner radius.
Number: Fraction of the parent width.
Number: Fraction of the parent height.
Number: The left padding in pixel.
Number: The top padding in pixels,
Number: The right padding in pixels.
Number: The bottom padding in pixels.
Number: Fraction of the screen height. [0-1]
Number: The x-scale of the component.Values less than `0` is smaller than the normal. While values greater than `1` is greater than the normal.
Number: The y-scale of the component. Values less than `1` is smaller than the normal. While vaues greater than `1` is greater than the normal.
Number: The radius in pixels
Number: The x-offset in pixels
Number: The y-offset in pixels
Number: Returns the absolute height of the control in pixels.
Number: Returns the absolute distance of the control from the left in pixels.
Number: Returns the absolute distance of the control from the top in pixels.
Number: Returns the absolute width of the control in pixels.
Number: Sets or returns the badge content. You can pass a string
Number: Sets or returns the border thickness in pixels.
Number: Sets or returns the corner radius of the button.
Number: Sets or returns the height of the control as a fraction of the parent control.
Number: Returns the distance of the control from the left.
Number: Sets or returns the opacity of the control.
Number: Sets or returns the angle of rotation in degrees.
Number: Sets or returns the size of the text within the control.
Number: Returns the distance of the control from the top.
Number: Sets or returns the width of the control as a fraction of the parent control.
String: “The button text or the material icon text.”
String: comma “,” separated: “one or a combination of the following:
Variant: `Contained` `Outlined` `Text` `Default`
`Color`: `Primary` `Secondary` `Default`
`Size`: `Small` `Medium` `Large`
`Util`: `Icon` `NoRipple` `Upload`
`In case of upload”, “ you can specify `Multiple` to accept multiple files.”
String: “The type of animation. Here are the available values
`bounce` `flash` `pulse` `rubberBand` `shakeX` `shakeY` `headShake` `swing` `tada` `wobble` `jello` `heartBeat`
`Back Entrances `backInDown` `backInLeft` `backInRight` `backInUp`
`Back Exits `backOutDown` `backOutLeft` `backOutRight` `backOutUp`
`Bouncing Entrances `bounceIn` `bounceInDown` `bounceInLeft` `bounceInRight` `bounceInUp`
`Bouncing exits `bounceOut` `bounceOutDown` `bounceOutLeft` `bounceOutRight` `bounceOutUp`
`Fading entrances `fadeIn` `fadeInDown` `fadeInDownBig` `fadeInLeft` `fadeInLeftBig` `fadeInRight` `fadeInRightBig` `fadeInUp` `fadeInUpBig` `fadeInTopLeft` `fadeInTopRight` `fadeInBottomLeft` `fadeInBottomRight`
`Fading exits `fadeOut` `fadeOutDown` `fadeOutDownBig` `fadeOutLeft` `fadeOutLeftBig` `fadeOutRight` `fadeOutRightBig` `fadeOutUp` `fadeOutUpBig` `fadeOutTopLeft` `fadeOutTopRight` `fadeOutBottomRight` `fadeOutBottomLeft`
`Flippers `flip` `flipInX` `flipInY` `flipOutX` `flipOutY`
`Lightspeed `lightSpeedInRight` `lightSpeedInLeft` `lightSpeedOutRight` `lightSpeedOutLeft`
`Rotating Entrances `rotateIn` `rotateInDownLeft` `rotateInDownRight` `rotateInUpLeft` `rotateInUpRight`
`Rotating Exits `rotateOut` `rotateOutDownLeft` `rotateOutDownRight` `rotateOutUpLeft` `rotateOutUpRight`
`Specials `hinge` `jackInTheBox` `rollIn` `rollOut`
`Zooming Entrances `zoomIn` `zoomInDown` `zoomInLeft` `zoomInRight` `zoomInUp`
`Zooming Exits `zoomOut` `zoomOutDown` `zoomOutLeft` `zoomOutRight` `zoomOutUp`
`Sliding Entrances `slideInDown` `slideInLeft` `slideInRight` `slideInUp`
`Sliding Exits `slideOutDown` `slideOutLeft` `slideOutRight` `slideOutUp`.”
String: “The mode of the measurements. Values can be `px` or `%`”
String: “Border color in hexadecimal form `#rrggbb`”
String: “Border-styles. Values can be `dotted` `dashed` `solid` `double` `groove` `ridge` `inset` and `outset`. Default is `solid`”
String: “Unit. Values are `px` `rem` or `%`.”
String: “`px` or `%`”
String: “`px` `%`”
String: “Unit of measurement. Can be `px` or `%` or any css unit of measurement.”
String: “The color in hexadecimal `#rrggbb`”
String: “The text of the tooltip”
String: “Position of the tooltip.
Positions : `top` `left` `right` `bottom` `bottom-end` `bottom-start` `left-end` `left-start` `right-end` `right-start` `top-end` `top-start`”
String: Sets or returns the accepted files for an upload button.
String: A hexadecimal color of the form #rrggbb
String: The path to your image file.
String: Sets or returns the color of the badge. Values can be Primary or Secondary
String: Sets or returns the border color. Color is in hexadecimal form #rrggbb
String: Sets or returns the border style. Values can be dotted, dashed, solid, double, groove, ridge, inset and outset. Default is solid.
String: Sets or returns the theme color of the button. Values can be Default Primary Secondary Inherit
String: Sets or returns the relative path to the font-family use.
String: Sets or returns the material icon font use for the leading icon.
String: Sets or returns the options of the control.
String: Sets or returns the size variant of the button. Values can be small medium or large
String: Sets or returns the button text.
String: Sets or returns the text color in hexadecimal format.
String: Sets or returns the tooltip text.
String: Sets or returns the tooltip position. Values can be left top right or bottom
String: Returns the type of the control.
String: Sets or returns the variant of the button. Values can be Contained Outlined or Text
String: Sets or returns the visibility of the control.
Object: The layout where to add the button.
Object: The pointer event object.
Object: The click event object.
Object: Returns the parent layout control.
Object: Returns the position of the control. The returned object has left top right and bottom props.
List: An array of file objects selected.
List: Sets or returns the margin of the control. Works on controls with Linear parent only. You can also pass a number to set equal margins for all sides.
List: Sets or returns the padding of the control. You can also pass a number to set equal padding for all sides.
btn.animate
Animate the component
btn.bringForward
Bring this component forward by a given z-index
btn.destroy
Destroy the component
btn.getPosition
Returns the position of the component. The return object is of the form `{ left, top, right, bottom
btn.gone
Destroy the component
btn.hide
Hide the component
btn.sendBackward
Bring this component backward by a given z-index
btn.setBorder
Sets the border line for the component container
btn.setCornerRadius
Sets the corner radius of the button
btn.setMargins
Sets the margin of the component
btn.setOnContextMenu
Adds a callback function on right click
btn.setOnFileSelect
Sets a callback on file select
btn.setOnTouch
Adds a callback handler when the component is touch
btn.setPadding
Sets the padding of the button
btn.setPosition
Sets the position of the component relative to its parent dimensions
btn.setScale
Sets the x and y scaling of the component
btn.setSize
Sets the size of the component
btn.setTextShadow
Sets a text-shadow to the button text
btn.setToolTip
Sets a tooltip when the button is hovered
btn.show
Show the component