Как добавить к рисункам «блок с обучающим сообщением»?

После установки R2018b первая открытая мною фигура содержала интересное сообщение (показано синим цветом):

Как добавить к рисункам «блок с обучающим сообщением»?

Причина, по которой это интересно, заключается в том, что он содержит такие функции, как перенос текста, прозрачность, тот факт, что изображение сохраняет постоянную ширину даже при изменении размера текста (это напомнило мне о Flexbox CSS3, следовательно, о теге) и т. д.

Как добавить к рисункам «блок с обучающим сообщением»?

Последняя часть анимации сделана в замедленном темпе, чтобы лучше показать, как размер div соответствует размеру рисунка.

В случае необходимости я использую Win 10 v1803.

Вопрос:

Я хотел бы знать, как мы можем нарисовать похожие, нестандартные, дивы (за неимением лучшего слова) в наших цифрах. (Важно подчеркнуть, что это нетUIFigure!)


Что я нашел на данный момент:

  • Ссылка Выучить больше открывает страницу:

    web(fullfile(docroot, 'matlab/creating_plots/interactively-explore-plotted-data.html'))
    

    все же точки останова в точках входа либо web, либо docroot (или даже doc) не достигаются.

  • Предполагая, что этот элемент является Child рисунка, я попытался найти его дескриптор:

    >> set(gcf,'MenuBar','none'); findall(gcf)
    
    ans = 
      22×1 graphics array:
    
      Figure                (1)
      ContextMenu
      AnnotationPane
      Axes
      AxesToolbar
      Text
      Text
      Text
      ToolbarStateButton    (Brush/Select Data)
      ToolbarStateButton    (Data Tips)
      ToolbarStateButton    (Rotate 3-D)
      ToolbarStateButton    (Pan)
      ToolbarStateButton    (Zoom In)
      ToolbarStateButton    (Zoom Out)
      ToolbarPushButton     (Restore View)
      Button
      Button
      Button
      Button
      Button
      Button
      Button
    

    однако, если сделать эти элементы управления невидимыми с помощью set(h(2:end), 'Visible', false), div не исчезнет.

  • Сохранение рисунка как .fig или генерация кода для него не оставляет никаких следов этого div.

  • Когда uiinspect обрабатывает фигуру, этот div не отображается (или, по крайней мере, я не может его найти).

  • Я не знаю, что именно я сделал, чтобы он снова появился, но поскольку он должен появиться в самый первый раз, когда вы загружаете R2018b, я подозреваю, что удаление prefdir (очевидно, после его резервного копирования) и перезапуск MATLAB могут вернуть его .

  • Единственное, что я еще не пробовал, - это подключить отладчик java к MATLAB и попытаться отследить вызывающего до com.mathworks.mlservices.MLHelpServices.setCurrentLocation (от mlservices.jar), что открывает браузер справки.

Скорее всего, это чистая Java.

Cris Luengo 19.11.2018 17:33

Чтобы погрузиться в современный стиль фигур, см. Набор инструментов github.com/StackOverflowMATLABchat/mlapptools и его примеры. Еще один пример веб-интерфейса (uipanel): undocumentedmatlab.com/blog/customizing-web-gui-uipanel. Но в моей системе он вроде глючит.

marsei 19.11.2018 17:43

@marsei: Взгляните на страницу участники набора инструментов, который вы связали. :)

Cris Luengo 19.11.2018 17:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
12
3
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

После некоторого покопания в Java (начиная с findjobj, за которым следовало много .getComponent(0).getComponent(0)...) мне наконец удалось найти рассматриваемый компонент. Вот что я узнал:

  1. Этот компонент называется InfoPanel и является частью Java API MATLAB. Само определение класса находится в:

    MATLAB/R2018b/java/jar/hg.jar!/com/mathworks/hg/util/InfoPanel.class
    
  2. Чтобы он появился, нам нужно вызвать метод staticaddBannerPanel, передав ему дескриптор фигуры:

    com.mathworks.hg.util.InfoPanel.addBannerPanel( figure(randi(1E4)) );
    

    Или другая подпись, которая также принимает настраиваемую панель:

    jIP = com.mathworks.hg.util.InfoPanel;
    jIP.setBackground(java.awt.Color(0.8, 0.7, 0.1));
    com.mathworks.hg.util.InfoPanel.addBannerPanel( figure(randi(1E4)), jIP );
    
  3. Параметр MATLAB, который контролирует, должно ли это появляться, - это showinteractioninfobar внутри <prefdir>/matlab.settings XML.

  4. Похоже, что «интересные части» InfoPanel являются частными, что означает, что он практически не допускает каких-либо настроек (в основном некоторых цветов; не строки или значка), но должно быть довольно легко сделать копию этого класса и показать все элементы нам нужно.

Другие вопросы по теме