VisIndicator Описание класса
VisIndicator предназначен для отображения информации о
текущих показаниях каких-либо датчиков.

Основным применением данного компонента является отображение текущих
показаний датчиков MDTA (EqMDTA). Для этого необходимо увказать в качестве
компонента оборудования (equipment) - компонент EqMDTA и оставить свойство
script
пустым.
В случае если скрипт (script) задан, то он будет
периодически исполняться и должен сам определять вид отображаемой
информации. В качестве данных для своей работы, он может использовать
набор данных (eqVarSet). Подробнее здесь.
Кроме отображения информации, индикатор может осуществлять вызов панели
редактирования параметров проекта. Для этого необходимо в свойстве eqParameters
задать ссылку на набор параметров проекта (EqParameters).
Если контроллер не определён, то перед вызовом
панели проверяются права пользователя на редактирование параметров, иначе
права проверяются контроллером. Подробнее здесь.
При необходимости редактировать только один параметр, в свойстве parameterIndex
нужно указать индекс нужного параметра.
Родительский класс: VisBase
Объект данного класса должен быть частью (дочерним объектом) одного из
потомков VisContainer.
Свойства
объекта
Описание
свойств
pos
Положение индикатора.
size
Размер.
font
Стиль шрифта.
textColor
Цвет текста.
backgroundColor
Цвет фона метки.
autoFillBackground
Закрашивать фон.
Значение параметра равное "true" говорит что фон индикатора должен быть
закрашен, инача фон прозрачный.
shadow
Вид рамки вокруг метки.
Plain - плоская
Raised - выпуклая
Sunken - утопленная
shape
Стиль рамки вокруг метки.
alignment
Выравнивание текста.
wordWrap
Перенос слов.
script
Периодически исполняемый скрипт.
Скрипт - периодически вызываемая подпрограмма, позволяющая изменять
информацию и внешний вид метки.
eqVarSet
Ссылка на набор тегов.
Данное свойство должно содержать ссылку на набор тегов (EqVarSet).
Набор тегов может использовать в процессе выполнения скрипта для получения
значений тегов. Доступ к значениям тегов осуществляется по индексу тега в
наборе. Например, для получения значения первого (индекс = 0) тега
необходимо использовать выражение obj.getVar(0).
eqParameters
Ссылка на набор параметров.
Данное свойство должно содержать ссылку на набор параметров (EqParameters).
Если набор параметров определён, то при клике на метке происходит вызов
редактора параметров.
parameterIndex
Индекс редактируемого параметра.
Свойство позволяет вызвать либо панель редактирования параметров (значение =
-1), либо "простой" редактор одного параметра с соответствующим индексом
(значение >= 0).
controller
Контроллер действий пользователя.
ctrlInfo
Дополнительная информация для контроллера.
Скрипт может использовать объекты и функции описанные ниже.
lbl - QLabel.
Можно использовать все "public slots" объекта.
obj - собственно этот компонент (VisLabel).
Для него доступны:
void setText(QString arg) - изменить текст
QVariant getVar(int idx) - получить значение переменной
QVariant getParameterValue(int idx) - получить значение параметра
void setTextColor(QColor arg) - установить цвет текста
void setBackgroundColor(QColor arg) - установить цвет фона
void setTextColor(int arg) - установить цвет текста
void setBackgroundColor(int arg) - установить цвет фона
void show() - показать
void hide() - спрятать
QString FloatToStr(double v, int prec) - преобразовать число в строку. prec
- количество знаков после запятой.
Примеры:
Вывод процента (переменная с индексом = 0, равная процент * 10), с точностью
до десятых.
percent = obj.getVar(0);
lbl.text = obj.FloatToStr(percent/10, 1);
Использование
контроллера
Без использования контроллера, при клике на индикаторе, происходит проверка
прав на редактирование параметров и, если права есть, вызов соответствующего
редактора.
Если нам необходимо иметь возможность разрешить редактирование параметров
пользователям с другим типом прав (например, право на редактирование
маршрутов), или перед вызовом редактора задать вопрос, или после
редактирования параметров сохранить соответствующее сообщение, то необходимо
использовать один из контроллеров действий пользователя.
О контроллерах см. "Контроллер действий
пользователя".
Метка использует контроллер в режиме "проверить права - задать вопрос -
действие (вызвать редактор параметров) - сохранить сообщение".
Метка предоставляет контроллеру следующие данные:
- Тип сообщения.
- Объект сообщения.
- Текст сообщения.
- Вопрос для подтверждения вызова панели редактирования параметров.
Есть два варианта формирования этих данных - простой и расширенный.
Простой вариант.
Контроллеру передаются только объект сообщения (указывается в свойстве ctrlInfo
без использования символа ";") и, если произошло изменение параметра,
текст сообщения.
Тип сообщения производит и вопрос остаются не определёнными (на "усмотрение"
контроллера).
Расширенный вариант.
Если в свойстве ctrlInfo используется символ ";"
хотя бы один раз, то используется данный вариант.
Данные задаются в следующем порядке: "тип;объект;текст;вопрос".
Любое из полей может быть не определено, соответственно будут не определены
соответствующие данные.
Например, если мы хотим передать только вопрос, то значение свойства будет
";;;вопрос".
Внимание! Пробел является допустимым значением.
.