# ActionButton - Кнопка с действием

class axipy.ActionButton

  Базовые классы: `Button`

  Кнопка с действием.

  См.также

  `axipy.ObserverManager`.

  Пример со встроенным наблюдателем.

      import axipy

      button = axipy.ActionButton(
          title="Мое действие",
          on_click=lambda: print("clicked"),
          enable_on=axipy.ObserverManager.HasTables,
      )

      # Добавление кнопки на панель "Основные", на вкладку "Команды"
      position = axipy.Position("Основные", "Команды")
      position.add(button)
      # Чтобы удалить добавленную кнопку нужно вызвать remove, или перезапустить приложение.
      # button.remove()

  Пример со пользовательским наблюдателем.

      import axipy

      my_observer = axipy.Observer("MyObserver", False)
      button = axipy.ActionButton(
          title="Мое действие",
          on_click=lambda: print("clicked"),
          enable_on=my_observer,
      )

      # Добавление кнопки на панель "Основные", на вкладку "Команды"
      position = axipy.Position("Основные", "Команды")
      position.add(button)
      # Чтобы удалить добавленную кнопку нужно вызвать remove, или перезапустить приложение.
      # button.remove()

  Конструктор класса:

  `__init__`(title, on_click[, icon, enable_on, ...]) | Конструктор класса.

  Свойства:

  `action` | Возвращает ссылку на объект `PySide2.QtWidgets.QAction`.
  `observer` | Возвращает наблюдатель для определения доступности кнопки.
  `observer_id` | Возвращает идентификатор наблюдателя для определения доступности кнопки.

  Методы:

  `remove`() | Удаляет кнопку из меню.

  __init__(title: str, on_click: Callable[[], Any], icon: Union[str, Path, QIcon] = '', enable_on: Optional[Observer] = None, tooltip: Optional[str] = None, doc_file: Optional[Union[str, Path]] = None)

    Конструктор класса.

    Параметры:

      - title – Текст.

      - on_click – Действие на нажатие. Передается функция, которая будет вызвана при нажатии на кнопку.

      - icon – Иконка. Может быть путем к файлу или адресом ресурса.

      - enable_on – Наблюдатель, для определения доступности кнопки.

      - tooltip – Строка с дополнительной короткой информацией по данному действию.

      - doc_file – Полный путь к html файлу с документацией.

  property action: QAction

    Возвращает ссылку на объект `PySide2.QtWidgets.QAction`. Через него можно производить дополнительные необходимые действия через объект Qt.

    Пример задания всплывающей подсказки, используя метод класса `PySide2.QtWidgets.QAction`:

        button.action.setToolTip("Всплывающая подсказка")

  property observer: Optional[Observer]

    Возвращает наблюдатель для определения доступности кнопки.

  property observer_id: str

    Возвращает идентификатор наблюдателя для определения доступности кнопки.

  remove()

    Удаляет кнопку из меню.