VisComboBox Описание класса

Комбинированный список (VisComboBox) предназначен для выбора одного значения из списка возможных.


Комбинированные списки позволяют определить дополнительные параметры в логике работы программы.

Для примера, на рисунке показанн список позволяющий выбрать один из бункеров.

Компонент VisComboBox должен быть связан с одним из тегов EqVarSet. Каждому возможному значеню тега (тег должен быть целочисленным), необходимо создать элемент в списке items.

Если перед изменением значения тега необходимо проверить права оператора, и/или задать допольнительный вопрос, и/или сохранить соответствующее сообщение, то необходимо воспользоватся контроллером действий.

Родительский класс:  VisBase

Объект данного класса должен быть частью (дочерним объектом) одного из потомков VisContainer.

Свойства объекта


Описание свойств

items

Список возможных значений тега.

pos

Положение списка.

size

Размер списка.

font

Стиль шрифта.

script

Периодически исполняемый скрипт.

Скрипт - периодически вызываемая подпрограмма, позволяющая изменять информацию и внешний вид списка.

eqVarSet

Ссылка на набор тегов.

Данное свойство должно содержать ссылку на набор тегов (EqVarSet).
Набор тегов и индекс varIndex определяют тег, управлять которым и отображать его текущее состояние будет список.
Кроме того набор тегов может использовать в процессе выполнения скрипта для получения значений других тегов. Доступ к значениям тегов осуществляется по индексу тега в наборе. Например, для получения значения первого (индекс = 0) тега необходимо использовать выражение obj.getVar(0).

varIndex

Индекс тега.

Свойство определяет индекс (место в списке) тега. Перый в списке тег имеет индекс = 0.

controller

Контроллер действий пользователя.

ctrlInfo

Дополнительная информация для контроллера.


Использование скрипта


cbx - QComboBox.

Можно использовать все "public slots" объекта.

obj - собственно этот компонент (VisComboBox).


Пример:

В зависимости от значения тега с индексом 1, текущий флажок будет (не)доступен для редактирования.

state = obj.getVar(1);

cbx.setEnabled(state);
 

Использование контроллера

Если перед изменением значения тега необходимо проверить права оператора, и/или задать допольнительный вопрос, и/или сохранить соответствующее сообщение, то необходимо использовать один из контроллеров действий пользователя.

О контроллерах см. "Контроллер действий пользователя".

Список использует контроллер в режиме "проверить права - задать вопрос - сохранить сообщение - действие".

Флажок предоставляет контроллеру следующие данные:
  1. Тип сообщения.
  2. Объект сообщения.
  3. Текст сообщения.
  4. Вопрос для подтверждения действия.
Есть два варианта формирования этих данных - простой и расширенный.

Простой вариант.

Контроллеру передаются только объект сообщения (указывается в свойстве ctrlInfo без использования символа ";"). Текст сообщения будет соответствовать тексту из списка items для нового значения тега.

Тип сообщения и вопрос остаются не определёнными (на "усмотрение" контроллера).

Расширенный вариант.

Если в свойстве ctrlInfo используется символ ";" хотя бы один раз, то используется данный вариант.

Данные задаются в следующем порядке: "тип;объект;вопрос".

Любое из полей может быть не определено, тогда будут использованные значения "по умолчанию".

Например, для значение ";Маршрут №2. Бункер назначения;Переключить на другой бункер?":


Внимание! Пробел является допустимым значением.

.