KDDockWidgets, вдосконалена система реалізації для QDockWidget

KDQDockWidget

Група KDAB - консультант з програмного забезпечення для програм Qt, C ++ та OpenGL для різних платформ (настільних, вбудованих та мобільних), крім цього забезпечує навчання для розробки програм Qt з нуля і при передачі всіх популярних кадрів в Qt.

Протягом багатьох років KDAB сприяв та фінансував розробку QDockWidget. Але оскільки зміни та виправлення помилок зайняли багато днів, використовуючи QdockWidget, Це виявилося невдалим варіантом, що призвело до народження KDDockWidgets.

KDDockWidgets є вдосконалена система стикування для QDockWidgets, за допомогою якого він розширює своє використання, додаючи функції, які QDockWidgets не підтримують.

QdockWidget спочатку поєднує код графічного інтерфейсу з логікою із станом, що дуже ускладнює рух вперед завдяки новим функціям, що викликає велику складність у його реалізації на різних платформах. Оскільки це основний компонент серії графічних інтерфейсів користувача, за допомогою нього ви можете переміщати цілі елементи вікна (панелі інструментів, групи віджетів тощо) куди завгодно.

Проте, KDAB стверджував, що обслуговування коду QDockWidgets не дуже просто, оскільки він коментує, що:

KDDockWidgets народився з моєї потреби зберегти розум після роботи над двома проектами, які вимагали великих налаштувань. Той, де ми намагалися працювати безпосередньо вище за течією, але швидкість регресу виявилася занадто великою.

І ще один, де я пішов шляхом використання приватних API, підроблених подій миші та фільтрів подій, що спочатку здавалося гарною ідеєю, але в підсумку стало світом болю. Крім того, наші клієнти ставали більш креативними з їхніми запитами, тому було зрозуміло, що нам потрібна краща система стикування.

Основна проблема - це його конструкція, цілком монолітний, але конфігурується (ми можемо вибрати функції, доступні користувачеві, навіть якщо це робить мало, для анімації), із кодом спагетті (щасливо змішуючи логіку та стан компонентів). Отже, будь-яка зміна може створити велику кількість регресій.

Ось чому KDAB вирішив створити KDDockWidgets, за допомогою якого він прагне значно спростити дизайн QDockWidgets, одночасно полегшуючи його адаптацію до конкретних ситуацій.

KDDockWidgets надає такі функції:

  • Можливість стикування віджетів у плаваючому вікні та прив’язка цієї групи до головного вікна
  • Пристикуйте до будь-якого вікна, а не лише до головного вікна
  • Стикування до центру головного вікна
  • Підтримка знімних вкладок у центральному віджеті в головному вікні
  • Можливість від'єднання вкладок від панелі в док-станції
  • Можливість поєднання декількох вкладок, поєднуючи кілька компонентів.
  • Розкрийте віджети внутрішньої довідки, щоб користувач міг їх налаштувати або надати власні.
  • Групи компонентів можуть вільно переключатися із зовнішнього вікна (яке містить лише цю групу компонентів) на головне вікно (функція, частково реалізована в Qt 5.10).
  • Налаштування віджетів вкладки
  • Налаштування рядків заголовка
  • Налаштування віконних рам
  • На додаток до того, що підкреслюється, що основною зміною є додавання точних показників для видалення елементів з графічного інтерфейсу, крім того, що поняття центрального віджета зникає, оскільки як таке воно більше не є специфічним елементом.

Нова організація чітко відокремлює логіку від графічного інтерфейсу, так що основним часом виконання є можна легко використовувати повторно для інтерфейсів Qt Quick (що в кінцевому рахунку очікується). Це також полегшує налаштування інтерфейсу, користувач може надати власні віджети для будь-якої частини інтерфейсу.

Крім того, KDDockWidgets призначений як фреймворк, тому ви можете легко замінити інтерфейси щоб забезпечити власний вигляд та поведінку. KDDockWidgets - це фреймворк з відкритим кодом, який підпадає під ліцензії GPLv2 та GPLv3.

Доступний код KDDockWidgets, а також його демонстрація У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.