= Структура каси самообслуги =
На відміну від програми, з якою працюють працівники магазину, з касою самообслуговування працюють клієнти закладу і тому зовнішній вигляд інтерфейсу програми має надзвичайно важливе значення. Крім того форма та розширення монітору може дуже відрізнятись від звичайних. Це додає особливі вимоги до кастомізації саме даного модуля.
* [#point1 Загальні принципи]
* [#point2 Позиціонування]
* [#point3 Кнопки]
== [=#point1 Загальні принципи] ==
Як відбувається зміна стилів описано [wikw:styles в цьому розділі].[[br]]
Проте окрім індивідуальних стилів, для каси самоомбслуговування розроблено систему, генерації інтерфейсу на основі файлів із індивідуальною структурою основного вікна. По суті це звичайні .xml файли що лежать в каталозі ./frames. Активну структуру можна підключити, змінивши в файлі kassa_ss.ini в секції [Place] .. FramesType="структура.xml". Внесення змін в ці файли дозволяє переміщувати, створювати або приховувати ті чи інщі елементи інтерфейсу програми.
== [=#point2 Позиціонування] ==
З дебільшого елементи позиціонування не відображаються (окрім рідкісних випадків) і служать лише для задання правил відображення елементів, які вміщують всередині себе.
=== Макети
Макети є вкладеними структурами системи, що можуть вміщувати інші слої та елементи. Для створення макета необхідно додати тег:
{{{
#!xml
...
}}}
Фактично макети служать для групування інших елементів та розміщення їх по горизонталі чи вертикалі. За замовчуванням елементи розтягнуться по горизонталі.[[br]]
Макет може містити наступні додаткові параметри:
* '''direction="орієнтація"''' - напрям орієнтації внутрішніх елементів. Допустимі значення: ''"vertical"'' - вертикальне (в стовпчик) або ''"horizontal"'' - горизонтальне
* '''frame="назва"''' - звичайні макети не відображаються на екрані. Проте додавання даного, не порожнього, параметру дозволить задати певну візуальну стилізацію зони, під елементами макету. В таблиці стилів для цього потрібно задати відповідний стиль '''QFrame#test_frame { ... }'''.
=== Розтягування
Елемент розтягування, доданий в '''''' притискає інші елементи, роблячи певні проміжки. Їх зручно уявляти як пружини, що розсувають інщі блоки.
{{{
#!xml
}}}
== [=#point3 Кнопки] ==