Juce: вкладені компонування

вкладені компонування
Juce: вкладені компонування

У Juce використовується ідеологія, розглянута в попередній статті по U ++, - ієрархія віджетів відповідає ієрархічній вкладеності їх класів в коді, а не встановлюється вручну призначенням «батька», як, наприклад, в Qt. Всі віджети нашого компонента рівноправні і знаходяться на одному рівні ієрархії. Якщо помістити на форму, наприклад, компонент GroupComponent, то віджети, поміщені всередину його рамки, не стануть його нащадками. Їхнє становище доведеться відредагувати вручну, встановлюючи режим Relative to groupComponent.

Якщо використовується, наприклад, TabbedComponent, то кожна його вкладка - це незалежний компонент, який потрібно «намалювати» окремо. Властивість Content type кожної вкладки дозволяє вибрати цей компонент на ім`я або вставити з файлу, попередньо створеного в Jucer. При вставці з файлу компонент відразу відображається на формі, однак редагувати його «на льоту» не можна (це підкреслюється білим фоном без направляючої сітки, див. Рис. Нижче). На щастя, в Jucer можна відкривати декілька компонувань одночасно. Якщо змінити і зберегти вкладену компоновку, то результат відразу ж буде видно у всіх інших компоновках, куди вона входить.

Juce: вкладені компонування
Робота з вкладеними компонуваннями в Jucer

Проблеми розміщення компонентів




Редактор компоновок в The Jucer страждає від загальної проблеми багатьох тулкіта - відсутність сайзер і «гумових» компоновок. Чому проста і елегантна ідея сайзер так непопулярна у творців «альтернативних» тулкіта, абсолютно незрозуміло. І U ++, і Juce використовують складну і громіздку систему логічного позиціонування, проте наявність прекрасного візуального редактора кілька згладжує недоліки такого підходу в Juce. Можливість вказівки відносного відстані від інших віджетів дозволяє відносно легко створювати компонування аналогічні звичайним і табличних сайзер, проте повністю замінити їх вона не може. Спробуйте, наприклад, розташувати по горизонталі три віджета, ко-торие повинні змінювати ширину в пропорції 1: 2: 3 при розтягуванні вікна не наліз один на одного!

На щастя, щось подібне сайзер в Juce все-таки є. Клас StretchableLayoutManager є по суті дуже незграбним лінійним сайзер. Метод layOutComponents цього класу приймає масив покажчиків на віджети і впорядковує їх згідно з раніше заданим мінімальним, максимальним і віддається перевага розмірами:



// У конструкторі
// Перший віджет може мати розмір від 50 до 100 пікселів,
// бажаний розмір - 60% від розміру контейнера myLayout.setItemLayout (0,50,100, -0.6);
// Другий віджет може мати розмір від 20% до 60% від розміру // контейнера, бажаний розмір - 50 пікселів myLayout.setItemLayout (1, -0.2, -0.6,50);
// У методі resized ()
// Створюємо масив покажчиків на віджети, які хочемо розмістити Component * comps [] = {myComp1, myComp2};
// Розміщуємо два компонента по вертикалі в поточному компоненті myLayout.layOutComponents (comps, 2, 0, 0, getWidth (), J getHeight (), true) -

Якщо в Qt або GTK + віджет просто додається в сайзер в конструкторі, а розміри є властивостями самого віджета, то в Juce все складніше. Потрібно точно знати кількість Віджая-тов в сайзер і їх бажані розміри, а в методі resized () припадає створювати тимчасовий масив покажчиків. Клас StretchableLayoutManager недоступний в візуальному редакторі, що робить його застосування ще більш трудомістким. Проте, навіть такий складний в застосуванні сайзер краще, ніж нічого.



В даний момент Вам цікавить не Juce, а Zaochnik.com відгуки (https://vk.com/zaochnik_com_otzyvy), тому що в уже в цьому році Ви плануєте замовити написання дипломної роботи досвідченого фахівця? В цьому випадку, Вам слід просто зайти в групу цього сервісу і прочитати відгуки, які, до речі, носять виключно позитивні характер!

ІНШЕ

Juce: многопоточность фото

Juce: многопоточность

Нить в Juce реалізується класом Thread. Як і в багатьох інших тулкіта, це повністю віртуальний клас, наслідуючи який…

Ієрархія віджетів в u ++ фото

Ієрархія віджетів в u ++

Відео: Qt - Компонування віджетів 1 (для початківців) Важливо розуміти, що редактор компоновок не є повноцінним…

Обробка подій в juce фото

Обробка подій в juce

Відео: Уроки javascript | Урок №13 - Події і обробник подій Переважна більшість тулкіта для С ++ (Gtk +, Qt,…

Juce: контейнери фото

Juce: контейнери

Відео: Batman Arkham City. Серія 16 [2-ий контейнер з титаном. глушилка] Найбільш загальним контейнерним класом в Juce…

Використання nepomuk фото

Використання nepomuk

NEPOMUK в Dolphin На рис. вище я червоним кольором зазначив і пошукове поле, і функції додавання коментарів і позначок.…

Juce: враження і висновки фото

Juce: враження і висновки

Відео: Малайзійка на підлогу шишечки - NASTY Juice! Бібліотека Juce виробляє двояке враження. Багато її можливості…

Використовуємо the jucer фото

Використовуємо the jucer

Відео: Соковижималка Novis Vitajuicer Візуальний редактор компоновок The Jucer Як ми вже переконалися, розміщувати…

Ultimate ++: перша програма фото

Ultimate ++: перша програма

Відео: Уроки C # (C sharp) | # 3 - Перша програма на C # Перейдемо до реального прикладу. Напишемо просту марну…

» » Juce: вкладені компонування