Работа с Action

Представляет абстракцию для действия с информацией о наименовании, иконке, шорткате и сигнале на срабатывание
Banner

Применение с ToolButton

Action {

    id: findAction

    text: i18n("&Find")

    icon.source: Rosa.Theme.icon("16/search-dark")

    shortcut: StandardKey.Find

    onTriggered: {

        // логика

    }

}



ToolButton {

    action: findAction

}

Применение с Menu

Menu {

    Action {

        text: i18n("&Find")

        onTriggered: {

            // логика

        }

    }

    MenuItem {

        text: i18n("Item 2")

    }

}

Применение с PageHeader

В примере используется свойство isEditMode для того, чтобы скрыть элемент заголовка. PageHeader поддерживает свойство Action.visible.

import QtQuick 2.15

import QtQuick.Controls 2.15

import QtQuick.Layouts 1.15



import RosaTheme 1.0 as Rosa

import RosaControls 1.0



Page {

    id: root

    title: "Page"

    property bool isEditMode: false



    header: PageHeader {

        title: root.title





        Action {

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

            onTriggered: {

                // логика

            }

        }



        Action {

            icon.source: Rosa.Theme.icon(_header.dark ? '24/trash' : '24/trash-color')

            text: i18n('Удалить')

            dangerous: true // применение dangerous, текст меню станет красным

            onTriggered: {

                // логика

            }

        }



        Action {

            text: i18n("Отмена")

            visible: root.isEditMode

            onTriggered: {

                // логика

            }

        }



        contextMenu: ContextMenu {



            Action {

                text: "Item 1"

            }



            Action {

                text: "Item 1"

            }



            Action {

                text: i18n("Удалить")



                onTriggered: {

                    // логика

                }

            }

        }

    }



    // ... content



}