# Віджети

Будівельними блоками, з яких складається діалогове вікно &kommander; є віджети. Ці віджети подібні до будь-яких інших віджетів у бібліотеках &Qt; і &kde;, а крім того мають додаткові функціональні можливості, за допомогою яких можна здійснювати пов’язування тексту з віджетами. Текст можна пов’язати зі станом віджета або його слотом наповнення. Кількість станів залежить від віджета. Якщо у віджета є лише один стан, цей стан називається типовим.

Текст віджета, ля-ля

У діалоговому вікні є два особливих стани для тексту &kommander;. Це стани Initiate і Destroy. Ці стани викликаються під час ініціалізації діалогового вікна і його знищення. За допомогою цих станів програма уникає так званих расових проблем під час відкриття нових вікон. Це також означає, що вам не потрібно використовувати будь-які особливі процедури під час закриття вікна для знищення всіх даних віджетів.

ButtonGroup

- Контейнер для створення груп кнопок. Необов’язковий заголовок можна встановити за допомогою властивості title. Вигляд рамки можна налаштувати за допомогою властивості lineWidth. Групу кнопок можна зробити ексклюзивною встановленням властивості exclusive у значення true. Ексклюзивність групи кнопок полягатиме у тому, що якщо буде натиснуто одну з кнопок, всі інші кнопки буде вимкнено. Це не стосується позначок варіантів (radio buttons), які завжди є взаємно виключними, навіть якщо група і не є ексклюзивною. Позначки варіантів можна зробити невиключними за допомогою властивості radioButtonExclusive. (Автор не певен, чи насправді спрацює зміна цієї властивості.)

  ButtonGroup завжди перебуває у одному стані, типовому.

  Текстом віджета ButtonGroup є тексти, пов’язані з кожною з кнопок групи, за порядком їх появи у ButtonGroup.

CheckBox

- Поле, яке можна позначити, або з якого можна зняти позначку. Існує також стан напівпозначеності, якщо значення властивості tristate рівне true. Мітку, пов’язану з CheckBox можна встановити за допомогою властивості text. Якщо встановити значення властивості checked, CheckBox від початку буде позначено.

  У віджета CheckBox є 3 стани, checked, semichecked і unchecked.

  Текстом віджета CheckBox є значення його властивості text.

CloseButton

- Кнопка, яка у разі натискання виконує пов’язаний з нею текст, а потім закриває діалогове вікно. Напис на кнопці визначається властивістю text. Вивід від команди пов’язаного тексту буде спрямовано до stdout, якщо значенням властивості writeStdout є true. Кнопка може бути типовою дією діалогового вікна, якщо властивість default встановлено у значення true.

  CloseButton завжди перебуває у одному стані, типовому.

  З CloseButton не пов’язано ніякого тексту віджета.

ComboBox

- ComboBox є віджетом вибору, у якому поєднано властивості кнопки з властивостями контекстного меню. У цьому віджеті буде показано поточний вибір користувача зі списку варіантів за мінімального використання простору у вікні. Пункти додаються до списку за допомогою вікна редагування. Якщо властивість editable буде встановлено у значення true, користувач зможе вводити довільні рядки у поле віджета.

  ComboBox завжди перебуває у одному стані, типовому.

  Текстом віджета ComboBox є текст вибраного пункту.

ExecButton

- Кнопка, яка у разі натискання виконуватиме команду з пов’язаного з нею тексту. Напис на кнопці визначатиметься властивістю text. Вивід від команди пов’язаного тексту буде спрямовано до stdout, якщо значенням властивості writeStdout є true. Кнопка може бути типовою дією діалогового вікна, якщо властивість default встановлено у значення true.

  ExecButton завжди перебуває у одному стані, типовому.

  З ExecButton не пов’язано ніякого тексту віджета.

FileChooser

- У віджеті FileChooser поєднано віджет LineEdit з кнопкою, яка у разі натискання відкриває перед користувачем діалогове вікно вибору файлів/тек. Назву вибраного файла або теки буде збережено у LineEdit. Тип віджета FileChooser можна встановити за допомогою властивості selectionType. Серед можливих типів: Open, Save і Directory. Якщо встановити для властивості selectionOpenMutliple значення true, користувач зможе обрати декілька файлів або тек. Заголовок вікна FileChooser можна встановити за допомогою властивості selectionCaption. Значення цієї властивості буде показано у смужці заголовка діалогового вікна. Якщо заголовка не буде вказано, у заголовку буде показано тип діалогового вікна вибору. Обмежити перелік файлів, які буде показано у діалоговому вікні можна за допомогою властивості selectionFilter.

  FileChooser завжди перебуває у одному стані, типовому.

  Текстом віджета FileChooser є текст, який міститься у LineEdit (файл, обраний користувачем).

GroupBox

- Віджет-контейнер, який містить у собі інші віджети. Вигляд рамки можна налаштувати за допомогою властивості lineWidth. Заголовок можна встановити за допомогою властивості title.

  GroupBox завжди перебуває у одному стані, типовому.

  Текстом віджета GroupBox є пов’язані тексти для кожного з віджетів, що містяться у цьому віджеті. Порядок текстів визначатиметься порядком, у якому з’являтимуться віджети у GroupBox.

LineEdit

- Віджет LineEdit є однорядковим текстовим редактором. За його допомогою користувач може вводити і змінювати окремий рядок тексту. Початковий текст віджета можна встановити за допомогою властивості text віджета. Можна вимкнути можливість редагування віджета за допомогою властивості readOnly. Існує 3 режими віджета: Normal, NoEcho і Password. Режим можна встановити за допомогою властивості echoMode.

  LineEdit завжди перебуває у одному стані, типовому.

  Текстом віджета LineEdit є текст, що міститься у полі редагування.

ListBox

- Віджет ListBox є списком пунктів, які користувач може обирати. У звичайному стані може бути обрано один або жодного пункту. Таку поведінку віджета можна змінити за допомогою властивості selectionMode. Додавати пункти до ListBox можна за допомогою вікна редагування.

  ListBox завжди перебуває у одному стані, типовому.

  Текстом віджета ListBox є пункти, які містяться у ListBox. Функція @selectedWidgetText поверне текст лише вибраних у поточний момент віджетів.

ListView

- Тепер цей віджет доступний і у &kommander;. Його функціональні можливості збігаються з віджетом ієрархічного перегляду, отже, вам слід звернутися до довідки з цього віджета.

PixmapLabel

- Простий віджет, який містить зображення або текстову мітку. Растрове зображення, яке буде показано, можна встановити за допомогою властивості pixmap. Текст визначається властивістю text. Ви можете встановлювати лише одну з цих властивостей одночасно (Здається, немає редактора, який встановлює їх одночасно). Якщо значенням властивості scaledContents є true масштаб зображення буде змінено згідно розмірів віджета. Формат тексту можна встановити за допомогою властивості textFormat.

  Цей віджет не увімкнено у &kommander;, з ним не пов’язано жодних станів або тексту віджета.

RadioButton

- Поле для позначки, позначку у якому можна встановити або зняти, зазвичай, цей віджет використовують у межах ButtonGroup для створення панелі ексклюзивного вибору. Мітку, пов’язану з цим віджетом, можна встановити за допомогою властивості text. Від початку позначити віджет можна за допомогою встановлення властивості checked у значення true. Якщо всі віджети RadioButton у ButtonGroup мають значення властивості checked рівні true, позначеним буде лише останній з цих віджетів.

  RadioButton має 2 стани: позначено і не позначено.

  З RadioButton не пов’язано ніякого тексту віджета..

RichTextEditor

- Цей віджет є віджетом текстового редактора, який надає вам можливість простого форматування тексту.

  RichTextEditor завжди перебуває у одному стані, типовому.

  Текст віджета RichTextEditor є текстом, що міститься у полі редактора, разом з позначками форматування. Виділений текст можна отримати за допомогою спеціальної функції @selectedWidgetText.

SpinBoxInt

- Віджет, за допомогою якого користувач може змінювати ціле число натисканням кнопок зі стрілочками вгору і вниз або введенням значення у поле. Мінімальне і максимальне значення для віджета можна встановити за допомогою властивостей minValue і maxValue. Властивість specialValueText використовується для встановлення текстового значення, яке буде показано замість мінімального значення.

  Цей віджет завжди перебуває у одному стані, типовому.

  Текстом віджета SpinBoxInt є поточне показане у віджеті ціле число.

SubDialog

- Кнопка, після натискання якої буде відкрито інше діалогове вікно &kommander;. Діалогове вікно, яке буде відкрито можна вказати за допомогою властивості kmdrFile. Якщо властивість default матиме значення true, діалогове вікно буде відкрито після натискання клавіші &Enter;, коли поточне діалогове вікно перебуває у фокусі. Автор вважає, що ви можете використовувати цей віджет як контейнер. Роботу над цим віджетом ще не завершено.

  SubDialog завжди перебуває у одному стані, типовому.

  Текстом віджета SubDialog є пов’язаний текст діалогового вікна, яке буде відкрито.

  Цей віджет мав містити діалогове вікно, що вважається неприйнятним у новій концепції проекту. Чи слід залишити текстом &kommander; значення `@dialog()`, чи може взагалі позбутися його? У поточному стані віджет не вкладається у концепцію програми.

TabWidget

- Віджет, за допомогою якого у вікні створюються вкладки, кожна з яких може містити інші віджети.

TextEdit

- Простий багаторядковий текстовий редактор.

TextLabel

- Простий віджет, який містить фрагмент тексту. За допомогою цього віджета ви можете вказати і растрове зображення. Гаразд, редактор повідомить, що обидва ці значення є QLabels. Навіщо нам тоді потрібні 2 віджети, які виглядають однаково, але мають різні назви? — За розкладом має бути виправлено у A7.

  У Alpha 6 цей віджет увімкнено частково, його можна встановити за допомогою зовнішніх викликів DCOP.

TreeWidget

- Віджет списку у формі деревоподібної ієрархії. У Alpha 6 цей віджет повністю увімкнено для додавання або вилучення пунктів. Ви можете додавати дочірні пункти і дані, що складаються з декількох стовпчиків. Поточним обмеженням є неможливість зміни стовпчиків. Для додавання дочірнього вузла скористайтеся роздільником /. Для додавання даних у стовпчиках використовуйте екранований символ табуляції \t, вставлений між стовпчиками.