Отключите и скройте средства управления диалоговым окном

Об отключении и сокрытии средств управления

Simulink® включает API индивидуальной настройки, который позволяет вам отключать и скрывать средства управления (также называемый виджетами), такими как текстовые поля и кнопки, на большинстве диалоговых окон. API индивидуальной настройки позволяет вам отключать или скрывать средства управления на целом классе диалоговых окон, например, диалоговых окон параметра, посредством вызова отдельного метода.

Прежде чем вы настроите диалоговое окно Simulink или класс диалоговых окон, сначала убедитесь, что диалоговое окно или класс диалоговых окон настраиваемы. Любое диалоговое окно, которое появляется в диалоговой панели Образцового Проводника, настраиваемо. Кроме того, любое диалоговое окно, которое имеет диалоговое окно и идентификаторы виджета, настраиваемо. Чтобы определить, настраиваемо ли диалоговое окно, откройте диалоговое окно, включите диалоговое окно и отображение ID виджета (см. идентификаторы Виджета), и парение по виджету. Если ID виджета появляется, можно настроить диалоговое окно.

Если вы решили, что диалоговое окно или класс диалоговых окон настраиваемы, запишите код MATLAB®, чтобы настроить диалоговые окна. Это влечет за собой функции обратного вызова записи, которые отключают или скрывают средства управления для определенного диалогового окна или класса диалоговых окон (см. Функции обратного вызова Индивидуальной настройки Управления Записью), и регистрация функций обратного вызова с помощью менеджера по индивидуальной настройке (см. Функции обратного вызова Индивидуальной настройки Управления Регистром). Simulink вызывает функции обратного вызова, чтобы отключить или скрыть средства управления каждый раз, когда вы открываете диалоговые окна.

Отключите кнопку на диалоговом окне

Этот файл sl_customization.m отключает Кнопку обзора на панели Генерации кода диалогового окна Configuration Parameters для любой модели, имя которой содержит engine.

function sl_customization(cm)

% Disable for standalone Configuration Parameters dialog box 
configset.dialog.Customizer.addCustomization(@disableRTWBrowseButton,cm);

end

function disableRTWBrowseButton(dialogH)
  hSrc   = dialogH.getSource;  % Simulink.RTWCC
  hModel = hSrc.getModel;
  modelName   = get_param(hModel,'Name');

  if ~isempty(strfind(modelName,'engine'))
    % Takes a cell array of widget Factory ID.
    dialogH.disableWidgets({'STF_Browser'})
  end

end

Протестировать эту индивидуальную настройку:

  1. Сохраните файл sl_customization.m на пути MATLAB.

  2. Обновите индивидуальные настройки путем ввода sl_refresh_customizations в командной строке или путем перезапуска MATLAB (см. Индивидуальные настройки Регистрации).

  3. Откройте модель sldemo_engine, например, путем ввода команды sldemo_engine в командной строке.

  4. Откройте диалоговое окно Configuration Parameters и посмотрите на панель Генерации кода, чтобы видеть, отключена ли Кнопка обзора.

Запишите функции обратного вызова индивидуальной настройки управления

Функция обратного вызова для отключения или сокрытия средств управления на диалоговом окне принимает один аргумент: указатель на объект диалогового окна, который содержит средства управления, которые вы хотите отключить или скрыть. Объект диалогового окна предоставляет методы, которые функция обратного вызова может использовать, чтобы отключить или скрыть средства управления, которые содержит диалоговое окно.

Объект диалогового окна также обеспечивает доступ к объектам, содержащим информацию о текущей модели. Ваша функция обратного вызова может использовать эти объекты определить, запретить ли или скрыть средства управления. Например, эта функция обратного вызова использует эти объекты отключить Кнопку обзора на панели Генерации кода диалогового окна Configuration Parameters для любой модели, имя которой содержит engine.

function disableRTWBrowseButton(dialogH)

  hSrc = dialogH.getSource;  % Simulink.RTWCC
  hModel = hSrc.getModel;
  modelName = get_param(hModel,'Name');

  if ~isempty(strfind(modelName,'engine'))
     % Takes a cell array of widget Factory ID.
     dialogH.disableWidgets({'STF_Browser'})
  end

Методы диалогового окна

Объекты диалогового окна предоставляют эти методы для включения, отключения и сокрытия средств управления:

  • disableWidgets(widgetIDs)

  • hideWidgets(widgetIDs)

widgetIDs является массивом ячеек идентификаторов виджета (см. идентификаторы Виджета), которые задают виджеты, чтобы отключить или скрыться.

Идентификаторы виджета

Идентификаторы виджета идентифицируют управление на диалоговом окне Simulink. Чтобы определить ID виджета для конкретного управления, выполните следующий код в командной строке:

cm = sl_customization_manager;
cm.showWidgetIdAsToolTip = true

Откройте диалоговое окно, которое содержит управление и парение по управлению, чтобы отобразить подсказку, перечисляющую ID виджета. Например, парение над полем Времени начала на панели Решателя диалогового окна Configuration Parameters показывает, что ID виджета для поля Времени начала является StartTime.

Примечание

Подсказка отображает not customizable для средств управления, которые не настраиваемы.

Укажите функции обратного вызова индивидуальной настройки управления

Чтобы указать функции обратного вызова индивидуальной настройки управления для установки Simulink, включайте код в файл sl_customization.m установки (см. Индивидуальные настройки Регистрации), который вызывает метод configset.dialog.Customizer.addCustomization на обратные вызовы.

Этот метод берет в качестве аргумента указатель на функцию обратного вызова, чтобы указать. Вызов этого метода заставляет зарегистрированную функцию быть вызванным, прежде чем диалоговое окно будет открыто.

Этот пример указывает обратный вызов, который отключает Кнопку обзора на панели Генерации кода диалогового окна Configuration Parameters (см. Функции обратного вызова Индивидуальной настройки Управления Записью).

function sl_customization(cm)  

% Disable for standalone Configuration Parameters dialog box 
configset.dialog.Customizer.addCustomization(@disableRTWBrowseButton,cm);

end

Примечание

Регистрация обратного вызова индивидуальной настройки заставляет Simulink, вызывают обратный вызов для каждого экземпляра класса диалоговых окон, заданных аргументом диалогового окна ID метода. Можно поэтому использовать единственный обратный вызов, чтобы отключить или скрыть управление для целого класса диалоговых окон. В частности, можно использовать единственный обратный вызов, чтобы отключить или скрыть управление для параметра, который характерен для большинства встроенных блоков. Большинство встроенных блочных диалоговых окон является экземплярами того же суперкласса диалогового окна.

Похожие темы

Была ли эта тема полезной?