Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: qtkoder777 от Октябрь 12, 2021, 16:35



Название: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: qtkoder777 от Октябрь 12, 2021, 16:35
Есть большая программа на QT4, в неё понадобилось добавить карту. Карты поддерживаются QT5 (QtLocation) и используют QML.
1) Можно ли вообще создать библиотеку на QT5, которая будет отображать виджет на QML (QQuickWidget)?
2) Можно ли использовать такую библиотеку в программе на QT4 (поместить этот виджет на экранную форму)?


Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: qtkoder777 от Октябрь 13, 2021, 11:02
Библиотека на QT5 в принципе не подгружается в программу на QT4 в VS2010.
Пишу так
Код
C++ (Qt)
hDLL = LoadLibraryA("C:/Qt/Qt5.14.2/5.14.2/mingw73_32/bin/Qt5Gui.dll");
hDLL оказывается равным нулю. Ничего не понимаю. Какая винде разница какую dll подгружать?


Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: __Heaven__ от Октябрь 13, 2021, 11:09
Пишу так
Код
C++ (Qt)
hDLL = LoadLibraryA("C:/Qt/Qt5.14.2/5.14.2/mingw73_32/bin/Qt5Gui.dll");
Не работал с win32, но оч смущают слеши в пути


Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: qtkoder777 от Октябрь 13, 2021, 11:36
QT Creator создаёт библиотеки, которые только его программы могут прочитать?
Зачем то есть версия QT под Visual Studio. Только там 17-я студия которой у меня нет.


Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: kambala от Октябрь 13, 2021, 11:43
смешивать библиотеки, собранные разными компиляторами — очень плохая идея. тебе надо как минимум собрать Qt 4 и 5 одним и тем же компилятором. И то не факт, что ты просто так сможешь смешать QtGui от 4 и 5 в одной программе.


Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: qtkoder777 от Октябрь 14, 2021, 21:58
смешивать библиотеки, собранные разными компиляторами — очень плохая идея. тебе надо как минимум собрать Qt 4 и 5 одним и тем же компилятором. И то не факт, что ты просто так сможешь смешать QtGui от 4 и 5 в одной программе.
Я же подключаю Windows-функцией, ей не должно быть всё равно? Почему Qt4 она подключает, а QT5 нет?


Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: Igors от Октябрь 15, 2021, 07:56
Есть большая программа на QT4,
Решение: портировать это приложение на Qt5. Конечно найдется 100 причин "почему не хочется", но попытки что-то пристегнуть к старой обречены, разница только когда придет понимание этого (может с этим постом чуть быстрее  :))



Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: qtkoder777 от Октябрь 25, 2021, 10:36
Есть большая программа на QT4,
Решение: портировать это приложение на Qt5. Конечно найдется 100 причин "почему не хочется", но попытки что-то пристегнуть к старой обречены, разница только когда придет понимание этого (может с этим постом чуть быстрее  :))
[/quote]
Перенос проекта на 100 тыс. строк с QT3 на QT4 занимает около года, не думаю что переход от QT4 к QT5 стал легче. Потом ещё долго вылавливать ошибки, добавленные в процессе переноса.


Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: kambala от Октябрь 25, 2021, 11:05
у 5 с 4 достаточно высокая совместимость на уровне кода


Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: Igors от Октябрь 25, 2021, 11:32
Перенос проекта на 100 тыс. строк с QT3 на QT4 занимает около года, не думаю что переход от QT4 к QT5 стал легче. Потом ещё долго вылавливать ошибки, добавленные в процессе переноса.
Сколько чего займет - то Вам виднее, но по-любому здесь надо проявить принципиальность. Проект жив? Если да, то надо его апдейтить. Если нет - не дергаться с новыми фичами. А так больше времени уйдет на связки/затычки. И даже в случае их успеха вывод будет типа "нужно делать нормально,, по-человечески"


Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: DarkHobbit от Декабрь 09, 2021, 14:31
Если за полтора месяца тема сохранила актуальность - вставлю 5 копеек.
Перенос проекта на 100 тыс. строк с QT3 на QT4 занимает около года, не думаю что переход от QT4 к QT5 стал легче.

Вы очень ошибаетесь, он принципиально легче. У Qt3 и Qt4 есть множество несовместимых в принципе мест.
А с Qt4 на Qt5... У моего редактора контактов (https://github.com/DarkHobbit/doublecontact) исходники совместимы и с той, и с другой, и на весь проект буквально несколько условных компиляций (навскидку вспоминается вынос QStandardPaths из QDesktopServices).

Разумеется, есть оговорки. Если из проекта на Qt4 до сих пор не выкинут Qt3Support, то его выкидывание - это первый и необходимый шаг к переносу. А дальше можно добавить строку условного добавления модуля QtWidgets в файл проекта (если проект гуёвый) и начинать гонять сборку с Qt5 и ловить глючки...


Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: qtkoder777 от Январь 13, 2022, 13:42
Одна из причин оставаться на QT4 - то что имеющаяся версия Visual Studio и QT5 не совместимы. Покупать новую студию не хочет организация, перейти на Qt Creator религия не позволяет.


Название: Re: Подключение библиотеки на QT5 с виджетом на QML к программе на QT4
Отправлено: DarkHobbit от Январь 21, 2022, 09:13
религия не позволяет.
Вам или организации?
Если первое - интересно послушать аргументы.