Здравствуйте, SaZ, Вы писали:
SaZ>А что вы думаете насчёт qml в качестве альтернативы?
Альтернативы WPF4Linux/XPF?
Если последний работает как заявлено, т.е. "Берем WPF-приложение, подключаем XPF, меняем пару немспейсов и всё волшебным образом работает" — то даже близко не альтернатива.
Я полистал те статьи и глянул на примеры в
https://github.com/qt-labs/qtdotnet (собственно, на эту разработку там и ссылаются) — имхо, это может быть решением, когда мы в ситуации:
— у нас есть работающее приложение на WPF, которое продолжает развиваться
— по каким-то причинам принято решение мигрировать на Qt, но:
а) объем миграции огромный и мы понимаем, что это займет очень много времени,
б) останавливать развитие продукта нельзя (т.е. ждать "сейчас все силы на миграцию, а потом уже будем развивать чисто Qt-приложение" не вариант)
в) сил на параллельное развитие 2-х продуктов (WPF и Qt) — нет.
И вот мы начинаем писать новое Qt приложение по схеме:
— переписываем отдельные куски на Qt (там где отделяемый UI) и подключаем их в старое приложение
— когда это возможно — дергаем логику из .Net-кода
Кадавр получается тот еще:
— там, конечно обещали генерацию оберток и простое подключение DTO, но в самих примерах используются "рукопашный" подход с реализацией всяких специфичных интерфейсов (типа IQAbstractListModel). Но, возможно, у них просто всё затянулось — я посмотрел, что код генераторов появился буквально месяц назад, и вообще у них там похоже всё замерло с 2023 года и сейчас вдруг снова проснулось.
— как это отлаживать?
— на сколько хороша инструментальная поддержка? Тут, я конечно очень отстал, и если судить по описанию
Qt VS Tools, поддержка QML-проектов в VS довольно хорошая, но я пару лет назад прямо страдал от того, что подсказка кода просто лажала на ровном месте (на стандартных контролах) — и приходилось просто по старинке выдирать фрагмент кода из примера и удалять ненужное.
> К тому же Qt сейчас достаточно много инвестирует в то, чтобы сделать биндинги под многие популярные языки.
Вот это мне показалось куда более интересным и как замена WPF — может даже взлететь.
Но это тоже не альтернатива XPF, это альтернатива самому WPF/Avalonia
Вот только это пока только проект, и когда можно будет увидеть более-менее рабочий результат, увы, не понятно (сроков я там н нашел).
А так, bindings из .Net в Qt делали энтузиасты еще годы назад. Другое дело, что оба известных мне проекта сдохли...
—
https://github.com/qmlnet/qmlnet — байдинг к QML
—
https://github.com/ddobrev/QtSharp — обертки над API Qt
Возможно, проблема в сложности работы с такими инструментами и может быть ребята из Qt Group смогут сделать что-то более человечное.