Оперативный ввод переменных (Диалоги)dialogs (CDialogsInfo) - мастер диалогов. Содержит список диалогов, по которому можно перемещаться вперёд и назад и вводить простейшие данные. Каждый диалог имеет тип CSimplePrintDialog и содержит метод getVar(), позволяющий извлекать эти данные. Кнопка "OK" - переход к следующему диалогу. Кнопка "Отмена" - также переход к следующему диалогу, при этом считается, что в диалог введено значение по умолчанию default. Но, если при создании диалога значение default не указано, getVar() возвращает None.
Мастер диалогов содержит методы:*dialXXX(title, ...) - создать, добавить в конец списка и запустить диалог ввода простейших данных.
*createDialXXX(title, ...) - создать и добавить в конец списка диалог ввода простейших данных.
*activate(dialog) - запустить диалог
Методы, запускающие диалоги ввода простейших данных:• dialInt(title, min, max, step=1, default=min) - диалог ввода целого числа с заголовком title. Число - от min до max, меняется с шагом step, начальное значение default
• dialFloat(self, title, min, max, step, decimals, default=min) - диалог ввода вещественного числа с заголовком title. Число - от min до max, меняется с шагом step, начальное значение default, отображается decimals знаков после запятой
• dialBool(self, title, name, default=False) - диалог ввода логического значения (CheckBox) с заголовком title. name - текст, который будет написан рядом с CheckBox. default - начальное состояние CheckBox (True - нажата, False - нет)
• dialDate(self, title, default=currentDate) - диалог ввода даты с заголовком title.
• dialTime(self, title, default='00:00') - диалог ввода времени с заголовком title.
• dialString(self, title, default="") - диалог ввода строки с заголовком title.
• dialList(self, title, lst=[], default=0) - диалог выбора строки из списка lst с заголовком title. default - начальный номер текущего элемента. Для диалога getVar() возвращает номер выбранной строки в списке, getListValue() - саму выбранную строку.
• dialMultiList(self, title, lst=[] [, select]) - диалог выбора нескольких строк из списка lst с заголовком title. Пераметр select задает выбор элементов списка: 0-не выбраны, 1-выбран первый элемент (по умолчанию), 2- выбраны все элементы. Для диалога getVar() возвращает массив номеров выбранных строк в списке, getListValues() - сами выбранные строки.
''Пример 1:''
{dialogs.dialString(u"Введите имя врача", "").getVar()} - отображает строку, введённую в диалоге
''Пример 2:''
{: dial1 = dialogs.dialString(u"Введите строку", "default string" ) }
{: str = dial1.getVar()}
{: dial2 = dialogs.dialList(u"Выберите элемент", ["first", "second", str], 1) }
{:dial2m = dialogs.dialMultiList(u"Выберите элементы", ["first", "second", str], 1) }
{: dial3 = dialogs.dialInt(u"Введите целое число", 66, 78, 3, 70) }
{: dial4 = dialogs.dialFloat(u"Введите вещественное число", -2, -1.5, 0.11, 2)}
{: dialb = dialogs.dialBool(u"Введите логическое значение", u"Я хочу продолжить", True)}
{: yes = dialb.getVar() }
{if: yes}
{: dial5 = dialogs.dialDate(u"Введите дату" ) }
{: dial6 = dialogs.dialTime(u"Введите время", '00:00' ) }
{: dat = dial5.getVar() }
{: tim = dial6.getVar() }
{end:}
{: str = dial1.getVar() }
{: value = dial2.getListValue()}
{: values = dial2m.getListValues()}
{: integ = dial3.getVar() }
{: flo = dial4.getVar() }
- Выводится диалог ввода строки. Затем диалог выбора элемента из списка, в котором данная строка - третья по счёту. Затем диалог выбора нескольких элементов из такого же списка. При возвращении назад и вводе новой строки диалоги выбора из списка не изменятся - они уже созданы и запущены! Затем диалог ввода целого числа от 66 до 78 с начальным элементов 70 и шагом 3. Затем - диалог выбора вещественного числа от -2 до -1.5 с начальным элементом -2 и шагом 0.11. Затем диалог с CheckBox, рядом с которым написано "Я хочу продолжить". Если пользователь не снял CheckBox, отображается диалог ввода даты и времени. Между всеми этими диалогами можно двигаться вперёд-назад. Выбранные значения сохраняются, соответственно, в переменных str, value, values, integ, flo, yes, dat, tim.