LINUX.ORG.RU

В Qt избавляются от QTextCodec

 


1

1

https://bugreports.qt.io/browse/QTBUG-75665

https://bugreports.qt.io/browse/QTBUG-75991

https://lists.qt-project.org/pipermail/development/2019-October/037791.html

Коротко для Ъ:

Из QtCore в 6-й версии будет удалён QTextCodec и его поддержка во всех связанных классах. В одном из багрепортов предлагается перенести всё связанное с перекодировкой в отдельный модуль. Но есть опасения, что согласно политики партии, новый модуль будет исключительно под GPL/Commercial. Сие весьма усложнит разработку софта для работы с текстом, где постоянно приходится иметь дело с зоопарком кодировок.

Я надеюсь они в этот новый модуль ICU не притянут? А то в прошлый раз притянули и под виндой приложение-кнопка стало весить столько, сколько весит приложение-кнопка на Java вместе с JVM в комплекте.

По теме – давно пора это сделать. Да и вообще нужно ещё больше разбить QtCore и особенно QtGui, в который запихнули зачем-то OpenGL для 0.0000001% случаев, когда наркоман использует эту либу для создания окна с контекстом GL вместо GLUT или SDL. Но из-за этого случая любое приложение-кнопка на вашем компьютере по умолчанию зависит от libGL.

Ещё из Core неплохо было бы выкинуть связанное с Xml и Json в отдельные либы. Как это было раньше.

EXL ★★★★★ ()

Сие весьма усложнит разработку софта для работы с текстом, где постоянно приходится иметь дело с зоопарком кодировок.

Каким образом? Если ты не делаешь неэтичную проприетарщину, то лицензия не является препятствием.

Ну а проприетарщиков и не жалко.

anonymous8 ()
Ответ на: комментарий от EXL

Ну их собственная реализация QLocale работала раньше без ICU. Она до сих пор так и работает под виндой.

Думаю, можно будет отключить. Правда пока не ясно, как будет работать QString::toLocal8Bit(), например. Там же всё на QTextCodec завязано. Придётся внешнюю либу подключать так или иначе.

anonymous ()

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

pon4ik ★★★★★ ()

Дебилы, …

Одна из приятностей Qt - беспроблемная работа со строками и кодировками из коробки.

Если они это сломают – у прикладников будет плюс одна причина перепрыгнуть на STLные строки и контейнеры. А Qt как «оконный тулкит» (то есть то, что люди несведущие часто принимают за Qt, хотя пока это не совсем так) можно и заменить.

hobbit ★★★★★ ()

QTextCodec provides support for - primarily - legacy text codecs that have very little relevance on modern systems, where strings are either utf-16 or utf-8.

Ну вот точно они живут в стране непуганых эльфов. Куча программ генерит файлы в локальных кодировках.

А иногда встречаются совсем тяжёлые случаи. Вот я в DoubleContact разбираю файлы резервных копий очень популярной программы My Phone Explorer. Там треть информации в UTF-8, вторая треть в ANSI/Windows. Третья вообще нетекстовая (PDU), про неё разговор отдельный.

Сейчас я этот файл парсю, а после перехода на Qt6 буду либо наворачивать сторонние библиотеки, либо объяснять людям, что программа, которой они пользовались - легаси и не нужна (очень популярный на ЛОРе подход, чё). Ну если таки не совсем выбросят, а перенесут в GPLный модуль, то ладно. DoubleContact на GPL, он, может, и не пострадает.

Всё, заканчиваю, а то цензурных слов у меня больше нет.

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

тогда уж лучше boost::ui, там не надо stl-строки в Qt-строки преобразовывать

Найс придумал, вместо использования Qt будем использовать boost::ui который есть абстракция над wxwidgets, который есть абстракция над Qt5(WxQt) или Gtk+3(wxGTK3)

больше абстракций богу абстракций

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

wxwidgets, который есть абстракция над Qt5(WxQt) или Gtk+3(wxGTK3)

ЕМНИП, оригинальный wxwidgets ни от чего такого не зависит. То, что ты назвал — это порты для придания нативного вида приложениям.

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

оригинальный wxwidgets ни от чего такого не зависит.

Оригинального wxWidgets не существует. Есть порт X11, но по факту он никогда не работал и не был сделан до конца.

anonymous ()