LINUX.ORG.RU

Qt6. Стоит ли портировать свои программы?

 , , ,


0

1

Привет, ЛОР'чик!
После 10 лет простоя в кодинге я миллиметровыми шажками пошёл в допиливании своих программ. начал с кроссворда и сейчас портировал его с Qt4 на Qt5, почти всё заработало. Выпилил Webkit и пару функций в классах пропала, что не страшно. Добавил переводы украинского и белорусского, которые мне лоровцы делали - усё робит.
Так вот вопрос в целесообразности мне перевода прямо сейчас сразу на 6 версию. Или лучше перевести всё, отладить, сделать релиз и начать переводить или подождать пока не будет хотя бы Qt-6.5, чтобы он был более зрелым и внятным в измениях и новшествах?

Благодарю за ответы!

★★☆

Последнее исправление: xwicked (всего исправлений: 4)

Ответ на: комментарий от ZenitharChampion

WebKit из Qt совсем убрали? Или вместо него что-то есть?

Я Webkit использовал для запуска url'ов(да, я извращенец), мне так проще было накодить, не прибегая к изучению класса QtNetwork.
Я у себя выпилил из программы WebKit. Есть ли он в Qt6 я не знаю.

xwicked ★★☆
() автор топика
Последнее исправление: xwicked (всего исправлений: 1)

По сабжу – переход с Qt 5 на Qt 6 должен быть ещё менее бескровным, чем с Qt 4 на Qt 5.

Проверить совместимость кодовой базы с Qt 6 конечно стоит, но я бы пока остался на Qt 5.
В недавно вышедшей Ubuntu 22.04 LTS, тот же Qt Creator из реп до сих пор собран с ним.

EXL ★★★★★
()

ИМХО, если особо хочется - можно обеспечить возможность сборки и с тем и с другим. А так пока лучше остаться на 5, тем более что KDEшники активно туда переносят исправления и некоторые фичи из 6. Правда Qt для этого нужно либо собирать самому отсюда https://invent.kde.org/qt/qt/qt5 либо использовать дистрибутивы, где это из коробки (Арч, KDE Neon, вроде бы openSUSE)

Sunderland93 ★★★★★
()

Пока что везде qt5. В любом случае они там не сильно api сломали. Так что если понадобится переход будет более простым чем 4 -> 5.

ox55ff ★★★★★
()

Там есть ещё такие моменты, что когда я печатал на бумаге или в PDF/html, то у объекта QImage был параметр serial(номер), по которому я делал манипуляции с изображениями, независимо от того где они находились. Чем заменили в Qt5?

xwicked ★★☆
() автор топика
Ответ на: комментарий от xwicked

у объекта QImage был параметр serial(номер)

Плохая архитектура. Класс QImage должен заниматься хранением изображения, а не серийные номера присваивать. Неудивительно, что это выпилили.

static int next_qimage_serial_number()
{
   static QBasicAtomicInt serial = Q_BASIC_ATOMIC_INITIALIZER(0);
   return 1 + serial.fetchAndAddRelaxed(1);
}

Ну понятно. Просто число в атомике. Это можно запилить и самому.

ox55ff ★★★★★
()

Можешь не сейчас, можешь потом. Главное, совместимость со старыми Qt не убивай.
Лично я не тороплюсь с шестёркой, например, потому, что мне нужна работа с неюникодными кодировками, а её из Qt6 выпилили. Модуль совместимости решает проблему (надолго ли…), но какое же это тогда портирование?..

Добавил переводы украинского и белорусского, которые мне лоровцы делали - усё робит.

А мне белорусский перевод делать энтузиастов не нашлось, хотя я сам когда-то клич на linux.by подавал. Украинский есть.

hobbit ★★★★★
()
Ответ на: комментарий от ox55ff

Плохая архитектура. Класс QImage должен заниматься хранением изображения, а не серийные номера присваивать. Неудивительно, что это выпилили.

Зря, мне как новичку в кодинге было очень удобно пользоваться.

Ну понятно. Просто число в атомике. Это можно запилить и самому.

Вот это хорошо. Но, блин, больше возни... Те более, мне наследовать QImage, чтобы это сделать? Позвольте! Это же полный ппц, товарищи... Этим сеньёры только могут заниматься, а не новички-быдлокодеры...😪

xwicked ★★☆
() автор топика
Ответ на: комментарий от pr849

Начнём с начала: зачем тебе этот serial?

Буду дома, загляну в код моей библиотеки и напишу потом.

Тот самый случай, когда наследование пахнет плохим дизайном.

Сеньёрам это расскажи. Если я захочу, например, чтобы мой ProgressBar был не прямоугольниками, а, например, сердечками(для тяночки), то как ты без наследования это сделаешь?

xwicked ★★☆
() автор топика
Последнее исправление: xwicked (всего исправлений: 2)
Ответ на: комментарий от xwicked

Если я захочу, например, чтобы мой ProgressBar был не прямоугольниками, а, например, сердечками(для тяночки), то как ты без наследования это сделаешь?

Если тут речь про переопределение собственной логики рисования ProgressBar, то наследование выглядит естественно. А вот адресация – внешний функционал, примерно как имя vs содержимое файла, и тут я согласен с @ox55ff:

Класс QImage должен заниматься хранением изображения, а не серийные номера присваивать.

С другой стороны, хранят же записи базы первичный ключ. Поэтому и спросил, зачем тебе этот serial: «случаи разные бывают» (с) Ржевский.

Сеньёрам это расскажи.

Как и сеньоры.

pr849
()
Последнее исправление: pr849 (всего исправлений: 2)
Ответ на: комментарий от ox55ff

Ты сейчас серьёзно? Нравится автоматическое внедрение яндекс-бара в установщик?

Паникёр. Только что проверил ничего не добавлено. Этому скандалу 100 лет, они давно уже исправились.

xwicked ★★☆
() автор топика
Ответ на: комментарий от xwicked

Буду дома, загляну в код моей библиотеки и напишу потом.

И ещё сразу вопрос – почему вместо serial (который судя по приведённому выше коду валиден только в пределах времени жизни процесса) не хватает тупо указателя на QImage?

pr849
()
Последнее исправление: pr849 (всего исправлений: 1)
Ответ на: комментарий от pr849

И ещё сразу вопрос – почему не хватает тупо указателя на QImage?

Точно не помню, помню, что он меня очень выручил тогда, когда я какой-то алгоритм внедрял.

xwicked ★★☆
() автор топика
Ответ на: комментарий от Beewek

5.12, потому что это последняя версия, которая поддерживает windows 7.

О, вот это существенная проблема. Понял. Наверное больше думать о 6-ке не буду.

xwicked ★★☆
() автор топика
Ответ на: комментарий от hobbit

Каждому? :)

Да. Для МСК думаю это мелочи. А я тогда кредитку новую взял Халву и смог выделить 2к на переводы... :D

xwicked ★★☆
() автор топика
Последнее исправление: xwicked (всего исправлений: 1)
Ответ на: комментарий от xwicked

Да это и вообще сущие мелочи, если оценивать по объёму работы, коммерческий перевод намного дороже должен быть. Другое дело, что когда сам тратишь время на написание программы, а потом ещё и деньги на найм переводчиков… тут уже из тумана энтузиазма начинает проглядывать вопрос «А оно надо?»

hobbit ★★★★★
()
Ответ на: комментарий от tnodir

«последняя версия, которая поддерживает windows 7» - это Qt 6.1.3

Нет, Qt 6 официально не поддерживает windows 7.

Сейчас у них на сайте только про Qt 6.2 LTS и 6.3 написано, но про 6.0 и 6.1 было написано тоже, что поддерживается Windows 10 +

https://doc.qt.io/qt-6/supported-platforms.html

Там просто примечание есть

Configurations not listed below are not officially supported by the Qt Project. However, Qt may still run on unsupported platforms and configurations.

Так что твоё приложение могло работать с Qt 6.1 на Windows 7, но это лишь по случайности, а не потому что была поддержка Qt Project.

fsb4000 ★★★★★
()

64-разрядные (включая arm64 в качестве предварительного просмотра технологии) 10 и 11 для Qt 6; 32-разрядные и 64-разрядные (т.е. x86 и x86_64) для Qt 5.13[19] для Microsoft Windows 7 и новее, [20] 8.1 и 10; Qt 5.6 поддерживаемые версии: Windows XP и Vista

Нашёл инфу, что Qt 5.6 поддерживает Windows XP и Vista. Стоит ли мне собирать всё проги с версии 5.6, для максимальной портабельности? Ведь чем старше поддержка, тем лучше будет работать и в Wine в лялихе или нет?

xwicked ★★☆
() автор топика
Ответ на: комментарий от hobbit

тут уже из тумана энтузиазма начинает проглядывать вопрос «А оно надо?»

Сложно сказать, наверное, скорее всего, я просто опыта набираюсь и всё...

xwicked ★★☆
() автор топика
Ответ на: комментарий от xwicked

Стоит ли мне собирать всё проги с версии 5.6, для максимальной портабельности?

Решай сам. Я вообще для Windows-пользователей собрал статикой Qt 4.8.6 и линкую DoubleContact с ним. По сравнению с аналогичной сборкой из Qt 5.10 занимает вдвое меньше места и работает на всех виндах, до которых я смог дотянуться в живой природе. Единственное, что меня в связи с Qt4 беспокоит — это 4K-мониторы, но ни один их обладатель на мой вопрос пока не откликнулся.

Для линуксов делаю ставку на Qt из репозиториев, но подумываю и тут сделать статику (не вместо, а в дополнение к текущему варианту), чтобы работало везде.

тем лучше будет работать и в Wine в лялихе

Нахрена тебе wine для кутешного проекта??? Если не хочется возиться с разными форматами пакетов и разными версиями Qt, сделай AppImage (или даже tar.xz, лол, даже это будет меньшим извращением) и затолкай в него ту же самую статику, собранную с glibc постарше.

в лялихе

Не надо так.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 6)