= Структура каси самообслуги = На відміну від програми, з якою працюють працівники магазину, з касою самообслуговування працюють клієнти закладу і тому зовнішній вигляд інтерфейсу програми має надзвичайно важливе значення. Крім того форма та розширення монітору може дуже відрізнятись від звичайних. Це додає особливі вимоги до кастомізації саме даного модуля. * [#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 Кнопки] ==