The StyledButton has a gradient, radius and border and an optional flatStyle, ready to be published in games & apps. More...
Import Statement: | import Felgo 4.0 |
Since: | Felgo 2.3.0 |
Inherits: |
The StyledButton is a skinned Qt Quick Controls Button that has the same style across platforms: a white-to-grey gradient, black textColor, 4px radius and a dark-grey border color. You can also set the flatStyle property to true to get a button without border color and no gradient.
You can use this button in published games as it looks more polished than the SimpleButton. It changes its background color when the button is hovered (only works on Desktop with a mouse input) and when the button is pressed.
The default size values for StyledButton are the size of the contained text. So the longer the text, the bigger the StyledButton is. You can change the default size and behavior of the StyledButton by creating a new qml file that has the StyledButton as root element and then change your default button style. This custom component can then be used in your game during development, so you can quickly change all your button appearances afterwards.
Alternative button components are GameButton and SimpleButton. See this table when to use which button type:
Button Type | Usage |
---|---|
SimpleButton | A one-color button without radius or gradient to use during development. |
StyledButton | A button with a radius, gradient and border. Also has a flatStyle with no border, no gradient and smaller radius. |
GameButton | The GameButton wraps the QtQuick Controls Button and styles it with the GameStyle. |
All of these button types can be customized by setting a style.
import Felgo GameWindow { Scene { StyledButton { text: "Toggle Physics" onClicked { // .. enter code for toggling physics settings here .. } } } }
The StyledButton provides several properties that make most popular styling requirements easier without setting an own ButtonStyle.
Example for Simple Button Styling:
import Felgo StyledButton { // these are the default values, change the ones youÄd like to change color: "#ccc" textColor: "black" gradientTopColorLighterFactor: 1.15 radius: 4 borderWidth: activeFocus ? 2 : 1 borderColor: "#888" }
For more advanced styling, assign a ButtonStyle to the style property.
Example for Advanced Button Styling:
import Felgo import QtQuick import QtQuick.Controls.Styles StyledButton { id: styledButton style: ButtonStyle { background: Rectangle { implicitWidth: 100 implicitHeight: 25 border.width: control.activeFocus ? 2 : 1 border.color: "#888" radius: 4 gradient: Gradient { GradientStop { position: 0 ; color: control.pressed ? "#ccc" : "#eee" } GradientStop { position: 1 ; color: control.pressed ? "#aaa" : "#ccc" } } } label: Text { anchors.centerIn: parent font.pixelSize: styledButton.pixelSize color: styledButton.textColor text: styledButton.text } } }
borderColor : color |
The border color of the background rectangle.
The default value is a grey color with code "#888".
borderWidth : int |
The border color of the background rectangle.
The default value is 2 if the button has focus, otherwise 1.
flatStyle : bool |
Set this property to enable a flat style, which has these changes:
The default value is false, so there is no flat style used.
Especially for mobile UIs, flat styles are sometimes preferable.
gradientBottomColor : color |
The color at the bottom of the color gradient.
The default value is color.
See also gradientTopColor.
gradientTopColor : color |
The color at the top of the color gradient.
The default value is Qt.lighter(color, gradientTopColorLighterFactor)
.
See also gradientTopColorLighterFactor and gradientBottomColor.
gradientTopColorLighterFactor : real |
The gradientTopColor is made ligther by this factor for the top of the used color gradient.
The default value is 1.15.
To disable the gradient, set this factor to 1.
See also gradientTopColor and color.
radius : int |
The background rectangle radius.
The default value is 4.