Russian Qt Forum
Ноябрь 24, 2024, 11:12
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Насколько сложен переход с Qt 4 на Qt 5?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Насколько сложен переход с Qt 4 на Qt 5? (Прочитано 13052 раз)
zzzseregazzz
Гость
Насколько сложен переход с Qt 4 на Qt 5?
«
:
Сентябрь 19, 2013, 08:46 »
Добрый день.
Перенос проектов с Qt 3 на Qt 4 был очень тяжелым.
К чему готовиться, если встанет задача перенести проект Qt 4 на Qt 5?
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #1 :
Сентябрь 19, 2013, 11:13 »
будет намного легче. весьма высока вероятность, что всё заработает без единой правки кода.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #2 :
Сентябрь 19, 2013, 12:43 »
Опасность при работе с отсохшими в Qt5 компонентами.
Но практически всё то же самое что и в Qt4.
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #3 :
Сентябрь 19, 2013, 15:02 »
Цитата: kambala от Сентябрь 19, 2013, 11:13
весьма высока вероятность, что всё заработает без единой правки кода.
Ну тут, пожалуй, слегка преувеличено. Из того, с чем столкнулись мы:
1. Новый формат системы плагинов
2. Для GUI проектов пришлось добавить в pro файлы QT += widgets
3. Заменить QTextCodec::setCodecForTr(codec) на QTextCodec::setCodecForLocale(codec)
Но, в целом, всё прошло действительно достаточно безболезненно.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #4 :
Сентябрь 19, 2013, 18:29 »
у меня большая часть правок состояла просто в разных инклудах (плагины не использую). единственное, где пришлось повозиться — док-меню и unified toolbar на Mac OS X (для этого теперь нужно скачивать отдельный компонент).
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #5 :
Сентябрь 21, 2013, 08:28 »
Не очень сложно.
Кроме выше описанного:
1) Исходники теперь только в utf-8. Ну в прочем если вы кирилицу не используете, то проблем нет. Если используете, то iconv вам в руки.
2) Некоторые методы-алиасы объявлены устаревшими. Например я встретил QAudioFormat::setFrequency => QAudioFormat::setSampleRate
3) Возможны и другие мелочи. Например у меня в QTcpSocket'е перестал работать seek (причём видно это только на отладочном выводе). Пропускаю теперь ненужные байты read'ом.
В общем-то в API изменений немногим больше, чем при смене минорной версии.
Таких проблем как при Qt 3 => Qt 4 точно не будет.
Записан
zzzseregazzz
Гость
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #6 :
Сентябрь 23, 2013, 16:02 »
Цитировать
2) Некоторые методы-алиасы объявлены устаревшими. Например я встретил QAudioFormat::setFrequency => QAudioFormat::setSampleRate
Любимое занятие разработчиков Qt - переименование методов.
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #7 :
Сентябрь 24, 2013, 18:01 »
"Любимое занятие разработчиков Qt - переименование методов."
Я за то, чтобы названия классов и методов были естественными.
А вообще разработчикам Qt сделать инструмент типа Qt3To4, только для Qt4->Qt5 было бы совсем не лишне.
Записан
Юра.
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #8 :
Декабрь 29, 2016, 12:47 »
Попробовал портануть не безызвестный набор виджетов "Qt embedded widgets", хотел получить работу и с Qt4 и с Qt5
Столкнулся с 2-мя задачами:
правка pro-файла -
сделал
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
Втыкание $PWD во многих местах, для нормальной теневой сборки. Это было полезно сделать ещё и для Qt4, но тогда поленился
правка исходников -
частично сделал
(см. ниже)
#include, особенно попотел из-за конструкций
<QtGui/QDesktopWidget>
Добавлена условная компиляция в строках типа
foo->setStyle(new QWindowsStyle());
, т.к. такого стиля в Qt5 нет
Теперь программа запускается и в большей степени работает.
Но столкнулся с 2-мя проблемами:
Программа падала, при вращении колеса мышки на всплывающем виджете -
исправил
Виджет выглядит так:
В Qt5, почему-то в отличие от Qt4, при входе в обработчик события weelEwent() событие имеет статус "ignored", а в Qt4 всегда было "accepted". Т.к. по замыслу авторов программы если колесо мышки крутить в любом месте всплывающего виджета, то события колеса мышки пересылаются на виджет "колёсика". В случае с Qt5 это приводило к лавине событий и софтина падала.
Сделал просто - при входе в обработчик стал вызывать метод accept() для события. Хотя в документации текст тот же что и для Qt4 - " если нужно проигнорировать событие, вызовите явно ignore()", т.е. вроде как по умолчанию оно принимается. (
8a533b073cfbe1060ea28f9f898cda1ff176ff4f
)
Рисующийся график в Qt5 почему-то имеет толстые (по высоте) участки, в отличие от Qt4 -
пока разбираюсь в причинах
Выглядит так: Qt4
, Qt5
Может кто-то сталкивался с подобной проблемой рисования и знает что нужно поправить?
П.С.
Если эта софтина кому-нибудь интересна, то исходники
тут
Записан
Юра.
panAlexey
Гипер активный житель
Offline
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #9 :
Декабрь 29, 2016, 16:32 »
Цитата: LisandreL от Сентябрь 21, 2013, 08:28
1) Исходники теперь только в utf-8. Ну в прочем если вы кирилицу не используете, то проблем нет. Если используете, то iconv вам в руки.
Как раз utf-8 и должен устранить проблемы с кирилицей. На то оно утф. Это у некоторых разрабов в голове проблемы.
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
http://trdm.1gb.ru/
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #10 :
Декабрь 29, 2016, 17:29 »
то наверняка послание для любителей 1251
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #11 :
Декабрь 29, 2016, 21:59 »
Это недоделка разрабов креатора... С их "непереносимостью" кириллицы в дебаге.
Записан
mitrich
Гость
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #12 :
Январь 09, 2017, 16:33 »
Цитата: lit-uriy от Декабрь 29, 2016, 12:47
Добавлена условная компиляция в строках типа
foo->setStyle(new QWindowsStyle());
, т.к. такого стиля в Qt5 нет
Сам стиль есть, вот только все классы-наследники QStyle
(кроме QCommonStyle и QProxyStyle)
теперь приватные и использовать их можно только через QStyleFactory и QProxyStyle.
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Насколько сложен переход с Qt 4 на Qt 5?
«
Ответ #13 :
Январь 10, 2017, 06:08 »
mitrich
, спасибо за наводку, будет время гляну.
Записан
Юра.
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...