Alterator/New/Packages: различия между версиями
Qwest (обсуждение | вклад) (→Button) |
(→Box) |
||
(не показано 13 промежуточных версий 1 участника) | |||
Строка 211: | Строка 211: | ||
{| class="wide sortable collapsible collapsed" style="text-align:center" | {| class="wide sortable collapsible collapsed" style="text-align:center" | ||
|- | |- | ||
!Package|| | !Package||[[Файл:Root.svg]]||[[Файл:Box.svg]]||[[Файл:Vbox.svg]]||[[Файл:Hbox.svg]]||[[Файл:Button.svg]]||[[Файл:Linkbutton.svg]]||[[Файл:Radio.svg]]||[[Файл:Label.svg]]||[[Файл:Edit_alterator.svg]]||[[Файл:Textbox.svg]]||[[Файл:Groupbox.svg]]||[[Файл:Gridbox.svg]]||[[Файл:Checkbox.svg]]||[[Файл:Checktree.svg]]||[[Файл:Tree.svg]]||[[Файл:Combobox.svg]]||[[Файл:Tabbox.svg]]||[[Файл:Progressbar.svg]]||[[Файл:Slider.svg]]||[[Файл:Separator.svg]]||[[Файл:Spacer.svg]]||[[Файл:Spinbox.svg]]||[[Файл:Dateedit.svg]]||[[Файл:Timeedit.svg]]||[[Файл:Listbox.svg]]|| [[Файл:RadioListBox.svg]]||[[Файл:Multilistbox.svg]]||[[Файл:Checklistbox.svg]]||[[Файл:Slideshow.svg]]||[[Файл:Splitbox.svg]]||[[Файл:Wizardface.svg]]||[[Файл:Centerface.svg]]||[[Файл:Colorselect.svg]]||[[Файл:Fileselect.svg]]||[[Файл:Undefined.svg]] | ||
|- | |- | ||
|alternatives || || || || ||<span style="display:none">1</span>{{Есть}}|| || ||<span style="display:none">1</span>{{Есть}}|| || || ||<span style="display:none">1</span>{{Есть}}||<span style="display:none">1</span>{{Есть}}|| || || || || || ||<span style="display:none">1</span>{{Есть}}||<span style="display:none">1</span>{{Есть}}|| || || ||<span style="display:none">1</span>{{Есть}}|| || || || || || || || || || | |alternatives || || || || ||<span style="display:none">1</span>{{Есть}}|| || ||<span style="display:none">1</span>{{Есть}}|| || || ||<span style="display:none">1</span>{{Есть}}||<span style="display:none">1</span>{{Есть}}|| || || || || || ||<span style="display:none">1</span>{{Есть}}||<span style="display:none">1</span>{{Есть}}|| || || ||<span style="display:none">1</span>{{Есть}}|| || || || || || || || || || | ||
Строка 411: | Строка 411: | ||
|} | |} | ||
== Таблица виджетов == | |||
==Таблица виджетов== | |||
{| class="wikitable" style="text-align: center" | {| class="wikitable" style="text-align: center" | ||
Строка 419: | Строка 418: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!box | ![[#Box|box]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 425: | Строка 424: | ||
|orientation|| | |orientation|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||box | ||
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!button | ![[#Button|button]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 437: | Строка 436: | ||
|text|| | |text|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||button | ||
|- | |- | ||
|centerface ||{{Есть}}||{{Нет}}||in_test||centerface | |centerface ||{{Есть}}||{{Нет}}||in_test||centerface | ||
Строка 443: | Строка 442: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!checkbox | ![[#CheckBox|checkbox]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 453: | Строка 452: | ||
|value|| | |value|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||checkbox | ||
|- | |- valign="top" | ||
|checklistbox ||{{Есть}}||{{ | | | ||
{| class="wide collapsible collapsed" | |||
![[#CheckListBox|checklistbox]] | |||
|- | |||
!Attributes||||Events | |||
|- | |||
|append-row||||changed | |||
|- | |||
|columns||||clicked | |||
|- | |||
|count||||double-clicked | |||
|- | |||
|current||||selected | |||
|- | |||
|enumref||||return-pressed | |||
|- | |||
|header|| | |||
|- | |||
|remove|| | |||
|- | |||
|row-item|| | |||
|- | |||
|rows|| | |||
|- | |||
|text|| | |||
|- | |||
|value|| | |||
|} | |||
|{{Есть}}||{{Есть}}||in_test||checklistbox | |||
|- | |- | ||
|checktree ||{{Есть}}||{{Нет}}||in_test||checktree | |checktree ||{{Есть}}||{{Нет}}||in_test||checktree | ||
Строка 463: | Строка 490: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!combobox | ![[#ComboBox|combobox]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 485: | Строка 512: | ||
|text|| | |text|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||combobox | ||
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!dateedit | ![[#DateEdit|dateedit]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 495: | Строка 522: | ||
|expanded|| | |expanded|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||dateedit | ||
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!edit | ![[#Edit|edit]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 509: | Строка 536: | ||
|value|| | |value|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||edit | ||
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!fileselect | ![[#FileSelect|fileselect]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 525: | Строка 552: | ||
|url|| | |url|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||fileselect | ||
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!gridbox | ![[#GridBox|gridbox]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 535: | Строка 562: | ||
|columns|| | |columns|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||gridbox | ||
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!groupbox | ![[#GroupBox|groupbox]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 551: | Строка 578: | ||
|title|| | |title|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||groupbox | ||
|- | |- | ||
|hbox ||{{Есть}}||{{Нет}}||in_test||hbox | |[[#Box|hbox]] ||{{Есть}}||{{Нет}}||in_test||hbox | ||
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!label | ![[#Label|label]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 567: | Строка 594: | ||
|value|| | |value|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||label | ||
|- | |- | ||
|linkbutton ||{{Есть}}||{{Нет}}||in_test||linkbutton | |linkbutton ||{{Есть}}||{{Нет}}||in_test||linkbutton | ||
Строка 573: | Строка 600: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!listbox | ![[#ListBox|listbox]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||||Events | ||
|- | |- | ||
|append-row|| | |append-row||||changed | ||
|- | |- | ||
|columns|| | |columns||||clicked | ||
|- | |- | ||
|count|| | |count||||double-clicked | ||
|- | |- | ||
|current|| | |current||||selected | ||
|- | |- | ||
|enumref|| | |enumref||||return-pressed | ||
|- | |- | ||
|header|| | |header|| | ||
Строка 597: | Строка 624: | ||
|text|| | |text|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test|| | ||
|- | |- | ||
|multilistbox ||{{Есть}}||{{Нет}}||in_test||multilistbox | |multilistbox ||{{Есть}}||{{Нет}}||in_test||multilistbox | ||
Строка 603: | Строка 630: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!progressbar | ![[#ProgressBar|progressbar]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 615: | Строка 642: | ||
|value|| | |value|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||progressbar | ||
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!radio | ![[#Radio|radio]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 629: | Строка 656: | ||
|value|| | |value|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||radio | ||
|- valign="top" | |- valign="top" | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!radiolistbox | ![[#RadioListBox|radiolistbox]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 683: | Строка 710: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!textbox | ![[#TextBox|textbox]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 699: | Строка 726: | ||
| | | | ||
{| class="wide collapsible collapsed" | {| class="wide collapsible collapsed" | ||
!timeedit | ![[#TimeEdit|timeedit]] | ||
|- | |- | ||
!Attributes||Events | !Attributes||Events | ||
Строка 711: | Строка 738: | ||
|value|| | |value|| | ||
|} | |} | ||
|{{Есть}}||{{ | |{{Есть}}||{{Есть}}||in_test||timeedit | ||
|- valign="top" | |- valign="top" | ||
| | | | ||
Строка 735: | Строка 762: | ||
|undefined ||{{Есть}}||{{Нет}}||in_test||undefined | |undefined ||{{Есть}}||{{Нет}}||in_test||undefined | ||
|- | |- | ||
|vbox ||{{Есть}}||{{ | |[[#Box|vbox]] ||{{Есть}}||{{Есть}}||in_test||vbox | ||
|- | |- | ||
|wizardface ||{{Есть}}||{{Нет}}||in_test||wizardface | |wizardface ||{{Есть}}||{{Нет}}||in_test||wizardface | ||
Строка 742: | Строка 769: | ||
===Таблица общих атрибутов для всех виджетов=== | === Таблица общих атрибутов для всех виджетов === | ||
{| class="wikitable" style="text-align: left" | {| class="wikitable" style="text-align: left" | ||
Строка 777: | Строка 804: | ||
==== | |||
Именно в этот виджет вставляются все остальные. | === Описание виджетов и их атрибутов === | ||
* | |||
* | |||
* | ==== Корневой виджет ==== | ||
Именно в этот виджет вставляются все остальные. Имеет следующие атрибуты: | |||
* '''title''' — заголовок окна | |||
* '''width''' — ширина окна | |||
* '''height''' — высота окна | |||
==== Box ==== | ==== Box ==== | ||
Контейнер для других виджетов. | Контейнер для других виджетов. | ||
* | * '''orientation''' «''horizontal''» — это развернутый вариант виджета '''hbox'''; | ||
* '''orientation''' «''vertical''» — развернутый вариант виджета '''vbox''' (по умолчанию). | |||
==== Button ==== | ==== Button ==== | ||
Строка 791: | Строка 824: | ||
<u>Атрибуты:</u> | <u>Атрибуты:</u> | ||
* | * '''text''' — текст на кнопке; | ||
* | * '''pixmap''' — картинка из списка. | ||
<u>События:</u> | <u>События:</u> | ||
* < | * '''clicked''' — вызывается при нажатии кнопки. | ||
==== CheckBox ==== | |||
Кнопка-флажок с двумя состояниями ''true'' или ''false''. | |||
* '''text''' — описание кнопки; | |||
* '''state''' — состояние флажка. Если значение ''#t'', то флажок выставлен. При значении ''#f'' флажок отсутствует; | |||
* '''value''' — то же, что и '''state'''. | |||
==== DateEdit ==== | |||
Виджет отображения даты, календаря. | |||
* '''expanded''' — со значением ''#t'' дополнительно отображает календарь; | |||
* '''value''' — атрибут для задания даты (строка формата ГГГГ-ММ-ДД). | |||
==== TimeEdit ==== | |||
Отображает время. | |||
* '''expanded''' — со значением ''#t'' добавляет графические часы; | |||
* '''stop''' — остановка счета времени; | |||
* '''start''' — запуск счета времени; | |||
* '''value''' — задание времени. | |||
==== Radio ==== | |||
Радиокнопка позволяет выбрать один пункт из набора, в пределах одного контейнера. | |||
* '''state''' — состояние пункта. Данный пункт выбран при значении ''#t''; | |||
* '''text''' — описание пункта; | |||
==== Edit ==== | |||
Однострочное текстовое поле ввода. | |||
* '''echo''' — режим отображения. Возможные варианты: ''normal'' (по умолчанию), ''stars'' (звёздочки, для паролей), ''no'' (ввод не отображается); | |||
* '''alterability''' — разрешение на изменение текста. Если значение ''#f'', содержимое поля доступно только для чтения; | |||
* '''text''' — содержимое поля; | |||
* '''value''' — то же, что и '''text'''. | |||
==== GridBox ==== | |||
Вертикальный контейнер «сетки». Основой способ организации виджетов на экране. | |||
* '''columns''' — ширина стобцов сетки в процентном соотношении от общей ширины. | |||
==== Label ==== | |||
Предназначен для отображения какой-либо надписи без возможности редактирования. | |||
* '''text-wrap''' — отображение одной длинной строки в виде многострочного текста (''#t''/''#f''); | |||
* '''text''' — отображаемый текст. | |||
==== GroupBox ==== | |||
Объединение группы виджетов в один контейнер. | |||
* '''checked''' — в случае значения #t рядом с заголовком отображается checkbox (если он не выделен, то содержимое группы неактивно и недоступно для работы); | |||
* '''orientation''' — ориентация контейнера (''horizontal''/''vertical''); | |||
* '''state''' — состояние checkbox в случае режима checked; | |||
* '''title''' — заголовок группы. | |||
==== ProgressBar ==== | |||
Строка прогресса некоторого процесса. | |||
* '''maximum''' — максимальное допустимое значение, соответствует 100 %; | |||
* '''minimum''' — минимальное допустимое значение, соответствует 0 %; | |||
* '''text''' — информация в строке прогресса; | |||
* '''value''' — текущее значение прогресса. | |||
==== SpinBox ==== | |||
Поле со счетчиком для ввода чисел. | |||
* '''maximum''' — максимальное допустимое значение; | |||
* '''minimum''' — минимальное допустимое значение; | |||
* '''step''' — шаг приращения значения; | |||
* '''value''' — текущее значение. | |||
==== TextBox ==== | |||
Многострочное текстовое поле ввода. | |||
* '''alterability''' — разрешение на изменение текста. Если значение ''#f'', содержимое поля доступно только для чтения; | |||
* '''text''' — содержимое поля; | |||
* '''append-text''' — добавить текст в конец поля; | |||
* '''url''' — показать содержимое указанного файла. | |||
==== FileSelect ==== | |||
Выбор файла из файловой системы, для дальнейшей работы с ним. | |||
* '''filter''' — допустимые расширения файлов; | |||
* '''hints''' — условие выбора файла (обычно используется значение ''existing_file'' для проверки на существование выбранного файла); | |||
* '''title''' — заголовок; | |||
* '''url''' — путь поиска файлов. | |||
<u>Пример:</u> | |||
<pre style="width:30em"> | |||
(document:surround "/std/frame") | |||
(define fileselect (make-widget 'fileselect)) | |||
(define url (make-attribute 'url)) | |||
(define filter (make-attribute 'filter)) | |||
(define hints (make-attribute 'hints)) | |||
(gridbox columns "100" | |||
margin "100" | |||
(vbox | |||
(label text "Simple import certificate") | |||
(fileselect title (_"Import CA certificate") | |||
url "/" | |||
filter "*.cert *.crt *.pem" | |||
hints "existing_file"))) | |||
</pre> | |||
==== SplitBox ==== | |||
Контейнер с изменяемой шириной колонок. | |||
* '''columns''' — изначальная ширина колонок. | |||
==== ListBox ==== | |||
Прокручиваемый список, с возможностью создания нескольких столбцов. | |||
<u>Атрибуты</u> | |||
* '''columns''' — количество колонок в списке; | |||
* '''header''' — заголовок таблицы, вектор из строк с названиями колонок; | |||
* '''enumref''' — адрес списка данных; | |||
* '''rows''' — возвращает список значений в виде единой строки; | |||
* '''rows-clear''' — очищает список; | |||
* '''append-row''' — добавление в конец списка новой строки; | |||
* '''row-item''' — работа с отдельным полем в списке. Координаты задаются списком из двух значений '(строка столбец) или указанием порядкового номера строки; | |||
* '''row-remove''' — удаляет строку с указанным порядковым номером; | |||
* '''text''' — возвращает строку с содержимым первого поля активной строки; | |||
* '''current''' — номер выделенной строки. Если ничего не выделено, то значение равно −1; | |||
* '''count''' — возвращает количество строк в таблице. | |||
<u>События</u> | |||
Желательно использовать только одно событие. | |||
* '''clicked''' — одинарный щелчок правой кнопки мышки по элементу списка; | |||
* '''double-clicked''' — двойной щелчок правой кнопки мышки по элементу списка; | |||
* '''selected''' — изменение активной строки; | |||
* '''return-pressed''' — нажатиe ''Enter'' на активной строке списка; | |||
* '''changed''' — любое действие с виджетом (не рекомендуется использовать). | |||
{| style="align:left;" | |||
| | |||
{{Навигационная таблица | |||
|state = collapsed | |||
|заголовок = Пример 1 | |||
|стиль_четных = background:#f0f0f0 | |||
|заголовок1 = Описание | |||
|список1 = | |||
В данном примере событие ''return-pressed'' срабатывает при ''double-clicked''. Исправляется использованием ''clicked'' вместо ''double-clicked''. | |||
|заголовок2 = index.scm | |||
|список2 = | |||
<pre style="width:70em"> | |||
(document:surround "/std/frame") | |||
(define (ui-list) | |||
(let ((list_one_fn (woo-call "/simple_list/list_one"))) | |||
(form-update-enum "name_one" list_one_fn) | |||
(or (null? list_one_fn) | |||
(let ((name (woo-get-option (car list_one_fn) 'name))) | |||
(form-update-value "name_one" name) )))) | |||
(document:root | |||
(when loaded (ui-list))) | |||
(gridbox columns 100 | |||
margin 100 | |||
align "center" | |||
(label align "center" text "Simple label") | |||
(document:id list_one (listbox columns 3 | |||
focus #t | |||
name "name_one" | |||
enumref "/simple_list/list_one" | |||
row '#((column0 . "") (column2 . "") (column3 . "")) | |||
header (vector "column 0" "column 2" "column 3") | |||
(when selected | |||
(testlist value (list_one current)) | |||
(testlist2 value (list_one text)) | |||
(testlist3 value (list_one rows)) | |||
(testlist4 value (list_one row-item (list (list_one current) 2) ))) | |||
(when double-clicked | |||
(list_one row-remove (list_one current))) | |||
(when return-pressed | |||
(list_one append-row '#("new-row" "test" "123"))) )) | |||
(gridbox columns "0;100" | |||
align "left" | |||
width 200 | |||
(label colspan 2) | |||
(label align "left" text "current") | |||
(document:id testlist (edit name "testlist" value (list_one current))) | |||
(label value "text") | |||
(document:id testlist2 (edit name "testlist2")) | |||
(label text "count") | |||
(document:id testlist3 (edit name "testlist3")) | |||
(label value "row-item") | |||
(document:id testlist4 (edit name "testlist4")) ) ) | |||
</pre> | |||
|заголовок3 = backend/simple_list | |||
|список3 = | |||
<pre style="width:70em"> | |||
#!/bin/sh | |||
alterator_api_version=1 | |||
. alterator-sh-functions | |||
list_one() | |||
{ | |||
for i in 0 1 2 3 4 | |||
do | |||
write_table_item column0 "row-$i" \ | |||
column1 "$i" \ | |||
column2 "$(($i+$i))" \ | |||
column3 "$(($i+12))" | |||
done | |||
} | |||
alterator_export_proc list_one | |||
message_loop | |||
</pre> | |||
|заголовок4 = simple_list.desktop | |||
|список4 = | |||
<pre style="width:70em"> | |||
[Desktop Entry] | |||
X-Alterator-URI=/simple_list | |||
</pre> | |||
}} | |||
| | |||
|} | |||
<br/> | |||
==== ComboBox ==== | |||
Выпадающий список. Поддерживает все события и атрибуты виджета [[#ListBox|''listbox'']] в '''одноколоночном''' режиме, а также: | |||
<u>Атрибуты</u> | |||
* '''alterability''' - значение #t переключает строку в редактируемый режим. | |||
<br/> | |||
==== RadioListBox ==== | |||
Список с возможностью выбора одного значения, где каждый элемент является радио-кнопкой. | |||
Атрибуты и события заимствованы из виджета [[#ListBox|''listbox'']]. Некоторые проблемы возникают с атрибутом ''enumref'' при формировании списка из ''backend''. | |||
==== CheckListBox ==== | |||
Прокручиваемый список с возможностью множественного выбора. Является объединением двух виджетов: [[#ListBox|''listbox'']] и [[#CheckBox|''checkbox'']]. Таким образом, поддерживает атрибуты и события обоих виджетов. | |||
==== Tree ==== | |||
Древообразный список элементов. |
Текущая версия от 17:24, 23 сентября 2013
Текущее состояние модулей альтератора
Packages Internals
Таблица виджетов
Widget | X11 | Qt | ncurses | Описание | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
in_test | box | |||||||||||||||||||||||||||||||||
|
in_test | button | |||||||||||||||||||||||||||||||||
centerface | in_test | centerface | |||||||||||||||||||||||||||||||||
|
in_test | checkbox | |||||||||||||||||||||||||||||||||
|
in_test | checklistbox | |||||||||||||||||||||||||||||||||
checktree | in_test | checktree | |||||||||||||||||||||||||||||||||
colorselect | in_test | colorselect | |||||||||||||||||||||||||||||||||
|
in_test | combobox | |||||||||||||||||||||||||||||||||
|
in_test | dateedit | |||||||||||||||||||||||||||||||||
|
in_test | edit | |||||||||||||||||||||||||||||||||
|
in_test | fileselect | |||||||||||||||||||||||||||||||||
|
in_test | gridbox | |||||||||||||||||||||||||||||||||
|
in_test | groupbox | |||||||||||||||||||||||||||||||||
hbox | in_test | hbox | |||||||||||||||||||||||||||||||||
|
in_test | label | |||||||||||||||||||||||||||||||||
linkbutton | in_test | linkbutton | |||||||||||||||||||||||||||||||||
|
in_test | ||||||||||||||||||||||||||||||||||
multilistbox | in_test | multilistbox | |||||||||||||||||||||||||||||||||
|
in_test | progressbar | |||||||||||||||||||||||||||||||||
|
in_test | radio | |||||||||||||||||||||||||||||||||
|
in_test | radiolistbox | |||||||||||||||||||||||||||||||||
root | in_test | root | |||||||||||||||||||||||||||||||||
separator | in_test | separator | |||||||||||||||||||||||||||||||||
slider | in_test | slider | |||||||||||||||||||||||||||||||||
slideshow | in_test | slideshow | |||||||||||||||||||||||||||||||||
spacer | in_test | spacer | |||||||||||||||||||||||||||||||||
|
in_test | spinbox | |||||||||||||||||||||||||||||||||
|
in_test | splitbox | |||||||||||||||||||||||||||||||||
tabbox | in_test | tabbox | |||||||||||||||||||||||||||||||||
|
in_test | textbox | |||||||||||||||||||||||||||||||||
|
in_test | timeedit | |||||||||||||||||||||||||||||||||
|
in_test | tree | |||||||||||||||||||||||||||||||||
undefined | in_test | undefined | |||||||||||||||||||||||||||||||||
vbox | in_test | vbox | |||||||||||||||||||||||||||||||||
wizardface | in_test | wizardface |
Таблица общих атрибутов для всех виджетов
Attribute | Значения | Описание |
---|---|---|
align | "left" "right" "middle" "hmiddle" "center" "top" "bottom" | выравнивание внутри ячейки «сетки» |
activity | #t #f | активирует/отключает виджет |
visibility | #t #f | видимость/невидимость виджета |
colspan | <число> | количество столбцов "сетки" под данный виджет |
rowspan | <число> | количество строк "сетки" под данный виджет |
tooltip | <текст> | справочная информация, выводимая во всплывающей подсказке |
focus | #t #f | атрибут только для записи, помещает фокус на виджет для которого указано значение #t |
width | <число> | ширина виджета |
height | <число> | высота виджета |
title | <текст> | заголовок родительского контейнера |
name | <текст> | имя виджета |
nameref | <текст> | аналог name (?) |
margin | <число> | ширина "рамки" вокруг контейнера |
spacing | <число> | промежуток между виджетами (применим только к контейнерам) |
Описание виджетов и их атрибутов
Корневой виджет
Именно в этот виджет вставляются все остальные. Имеет следующие атрибуты:
- title — заголовок окна
- width — ширина окна
- height — высота окна
Box
Контейнер для других виджетов.
- orientation «horizontal» — это развернутый вариант виджета hbox;
- orientation «vertical» — развернутый вариант виджета vbox (по умолчанию).
Button
Кнопка с текстом и картинкой.
Атрибуты:
- text — текст на кнопке;
- pixmap — картинка из списка.
События:
- clicked — вызывается при нажатии кнопки.
CheckBox
Кнопка-флажок с двумя состояниями true или false.
- text — описание кнопки;
- state — состояние флажка. Если значение #t, то флажок выставлен. При значении #f флажок отсутствует;
- value — то же, что и state.
DateEdit
Виджет отображения даты, календаря.
- expanded — со значением #t дополнительно отображает календарь;
- value — атрибут для задания даты (строка формата ГГГГ-ММ-ДД).
TimeEdit
Отображает время.
- expanded — со значением #t добавляет графические часы;
- stop — остановка счета времени;
- start — запуск счета времени;
- value — задание времени.
Radio
Радиокнопка позволяет выбрать один пункт из набора, в пределах одного контейнера.
- state — состояние пункта. Данный пункт выбран при значении #t;
- text — описание пункта;
Edit
Однострочное текстовое поле ввода.
- echo — режим отображения. Возможные варианты: normal (по умолчанию), stars (звёздочки, для паролей), no (ввод не отображается);
- alterability — разрешение на изменение текста. Если значение #f, содержимое поля доступно только для чтения;
- text — содержимое поля;
- value — то же, что и text.
GridBox
Вертикальный контейнер «сетки». Основой способ организации виджетов на экране.
- columns — ширина стобцов сетки в процентном соотношении от общей ширины.
Label
Предназначен для отображения какой-либо надписи без возможности редактирования.
- text-wrap — отображение одной длинной строки в виде многострочного текста (#t/#f);
- text — отображаемый текст.
GroupBox
Объединение группы виджетов в один контейнер.
- checked — в случае значения #t рядом с заголовком отображается checkbox (если он не выделен, то содержимое группы неактивно и недоступно для работы);
- orientation — ориентация контейнера (horizontal/vertical);
- state — состояние checkbox в случае режима checked;
- title — заголовок группы.
ProgressBar
Строка прогресса некоторого процесса.
- maximum — максимальное допустимое значение, соответствует 100 %;
- minimum — минимальное допустимое значение, соответствует 0 %;
- text — информация в строке прогресса;
- value — текущее значение прогресса.
SpinBox
Поле со счетчиком для ввода чисел.
- maximum — максимальное допустимое значение;
- minimum — минимальное допустимое значение;
- step — шаг приращения значения;
- value — текущее значение.
TextBox
Многострочное текстовое поле ввода.
- alterability — разрешение на изменение текста. Если значение #f, содержимое поля доступно только для чтения;
- text — содержимое поля;
- append-text — добавить текст в конец поля;
- url — показать содержимое указанного файла.
FileSelect
Выбор файла из файловой системы, для дальнейшей работы с ним.
- filter — допустимые расширения файлов;
- hints — условие выбора файла (обычно используется значение existing_file для проверки на существование выбранного файла);
- title — заголовок;
- url — путь поиска файлов.
Пример:
(document:surround "/std/frame") (define fileselect (make-widget 'fileselect)) (define url (make-attribute 'url)) (define filter (make-attribute 'filter)) (define hints (make-attribute 'hints)) (gridbox columns "100" margin "100" (vbox (label text "Simple import certificate") (fileselect title (_"Import CA certificate") url "/" filter "*.cert *.crt *.pem" hints "existing_file")))
SplitBox
Контейнер с изменяемой шириной колонок.
- columns — изначальная ширина колонок.
ListBox
Прокручиваемый список, с возможностью создания нескольких столбцов.
Атрибуты
- columns — количество колонок в списке;
- header — заголовок таблицы, вектор из строк с названиями колонок;
- enumref — адрес списка данных;
- rows — возвращает список значений в виде единой строки;
- rows-clear — очищает список;
- append-row — добавление в конец списка новой строки;
- row-item — работа с отдельным полем в списке. Координаты задаются списком из двух значений '(строка столбец) или указанием порядкового номера строки;
- row-remove — удаляет строку с указанным порядковым номером;
- text — возвращает строку с содержимым первого поля активной строки;
- current — номер выделенной строки. Если ничего не выделено, то значение равно −1;
- count — возвращает количество строк в таблице.
События Желательно использовать только одно событие.
- clicked — одинарный щелчок правой кнопки мышки по элементу списка;
- double-clicked — двойной щелчок правой кнопки мышки по элементу списка;
- selected — изменение активной строки;
- return-pressed — нажатиe Enter на активной строке списка;
- changed — любое действие с виджетом (не рекомендуется использовать).
|
ComboBox
Выпадающий список. Поддерживает все события и атрибуты виджета listbox в одноколоночном режиме, а также:
Атрибуты
- alterability - значение #t переключает строку в редактируемый режим.
RadioListBox
Список с возможностью выбора одного значения, где каждый элемент является радио-кнопкой. Атрибуты и события заимствованы из виджета listbox. Некоторые проблемы возникают с атрибутом enumref при формировании списка из backend.
CheckListBox
Прокручиваемый список с возможностью множественного выбора. Является объединением двух виджетов: listbox и checkbox. Таким образом, поддерживает атрибуты и события обоих виджетов.
Tree
Древообразный список элементов.