Заменить систему Docking Widgets в классе главного окна (QT)

20 000 руб. за проект
31 марта 2022, 11:25 • 4 отклика • 35 просмотров
Необходимо заменить систему Docking Widgets в классе главного окна на аналогичную из сторонней библиотеки.

В наличии приложение на Qt6 с “классическим” главным окном, в котором виджеты из разных модулей приложения отображаются в нескольких плавающих областях экрана (Docking Widgets). На данном этапе система перетаскивания панелей отключена из-за необходимости модернизации кода.

В качестве целевой системы для подобного окна необходимо использовать библиотеку

https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System

В исходном коде есть примеры и демо приложения. По ссылке можно найти много примеров использования библиотеки в реальных проектах.

Задачи:
1. Внедрить новую систему, которая позволит существующим плагинам отображать виджеты в гланом окне приложения.
2. Разобраться с системой сохранения\загрузки состояния панелей, понять каким образом может быть сохранено внутренне состояние каждой из дочерних панелей. При старте приложения и восстановлении панелей, приложение должно создавать виджеты, существовавшие до закрытия и передавать в них сохранённое состояние.
К примеру, восстановление состояния панелей может выглядеть как:
QWidget *w = pluginSystem()->createWidget(QString name, QJsonDocument state);
mainWindow->insertWidget(w);
3. Задокументировать работу.
4. Оформить код в одном стиле в соответствии с существующим кодом.

Используемые инструменты:

1. CMake
2. С++17
3. Qt 6
4. Git
5. Платформы: Windows и Linux.

Отзывы
Проект был не простой и требовал значительное время для выполнения. В итоге, ожидаемо проект вышел за рамки оговоренных изначально сроков, но т.к. для нас данная задача не была критичной, мы договорились с Михаилом, что важнее сделать хорошо, чем быстро.
В итоге задача была успешно выполнена. Все отлично, очень надеюсь, что в таком объемном проекте все участники получили важный опыт.
Михаилу большое спасибо за качественно выполненную работу. Надеюсь, еще поработаем на других проектах.
С уважением, Алексей.
2 года назад
R50 b25cd19c3d127bb5c9b35511e8b739c6
Фрилансер
Вежливый человек, понятно объяснил ТЗ, вежливо общался, в общем Мечта заказчик
2 года назад