Работа с кнопками

RosaControls предоставляет элемент Button с возможностью выбора пресета цвета и формы

Пример с параметрами

Button {

text: i18n("large button")

sizeName: 'large' # размер кнопки (или выставить вручную with & height)
paletteName: 'primary' # цвет текста и фона
dangerous: true # выставит цвет текста в красный, не зависимо от paletteName
enabled: true # если false, то иконка, текст и фон станут серыми
flat: false # true - уберет фон кнопки
}

Параметры цвета и формы

paletteName:

"primary" # основная кнопка
"secondary" # второстепенная кнопка
"secondary-neutral" # черно-белый стиль
"contextual" # без фона с обводкой

sizeName:

"small" # h32, r16
"medium" # h40, r12
"large" # h48, r16
}
Button Size Light Button Palette Light
Button Size Dark Button Palette Dark

Button

Простая кнопка без фона.

ToolButton {

text: i18n("Применить")

icon.source: Rosa.Theme.icon('24/week-color')

}
Tool Button Light
Tool Button Dark

IconButton

Кнопка для отображения иконки, с пресетами по размеру.

IconButton {

icon.source: Rosa.Theme.icon('16/close')

sizeName: "xxsmall"

shape: "circle"

color: Rosa.Theme.additionalDarkThemeOrangeColor

}

Параметры размера и формы. При выборе параметров, сочетания размера и формы может не быть, тогда выставляется размер 48x48 px.

"xxsmall/circle": 16x16

"xsmall/circle": 20x20

"small/circle": 28x28

"middle/circle": 48x48

"slim/oval": 68x32

"small/oval": 45x29

"large/oval": 68x44

"xlarge/oval": 92x60

"xxlarge/oval": 154x44
Icon Button 1 Light Icon Button 2 Light Icon Button 3 Light Icon Button 4 Light
Icon Button 1 Dark Icon Button 2 Dark Icon Button 3 Dark Icon Button 4 Dark

IconLabelButton

Кнопка с иконкой и надписью. Основано на QML AbstractButton.

color # цвет фона
textColor # цвет текста
font # шрифт текста
elide: false # elide текста
spacing # расстояние между "кнопкой" и надписью

# кастомизация "кнопки"
int buttonWidth: __sizes[sizeName].size.width

int buttonHeight: __sizes[sizeName].size.height

int radius: buttonHeight / 2


# пресеты размера кнопки
sizeName: 'slim'

"slim": { size: Rosa.Theme.scaleSize(68, 32), spacing: Rosa.Theme.scale(4) }

"large": { size: Rosa.Theme.scaleSize(68, 44), spacing: Rosa.Theme.scale(12) }

"xlarge": { size: Rosa.Theme.scaleSize(92, 60), spacing: Rosa.Theme.scale(8) }
IconLabelButton {

text: i18n("Switch wi-fi")

icon.source: Rosa.Theme.icon('24/week-dark')

sizeName: 'slim'

}


IconLabelButton {

text: i18n("Switch wi-fi")

icon.source: Rosa.Theme.icon('24/week-dark')

sizeName: 'large'

landscapeMode: true

}


IconLabelButton {

text: i18n("Switch wi-fi")

icon.source: Rosa.Theme.icon('24/week-dark')

sizeName: 'xlarge'

}

CheckBox

Обычный checkbox с пресетами настроек для размера индикатора.

string sizeName: "small" # пресет размера индикатора
"smallest"

"small"

"large"


int spacing # расстояние между индикатором и текстом
CheckBox {

sizeName: "smallest"

text: "switch wifi"

}


CheckBox {

sizeName: "small"

text: "switch wifi"

}


CheckBox {

sizeName: "large"

text: "switch wifi"

}

Switch

Обычный переключатель, основанный на QML Switch. Доступен в RosaStyle.

text # текст переключателя
font: Rosa.Theme.labelMediumMidFont

palette.text: Rosa.Theme.textColor


spacing: Rosa.Theme.scale(4) # расстояние между индикатором и текстом
Switch {

onCheckedChanged: {

process(checked)

}

}


Switch {

text: i18n("Switch with text")

}
Switch Light
Switch Dark