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. Сие весьма усложнит разработку софта для работы с текстом, где постоянно приходится иметь дело с зоопарком кодировок.



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

В новость хотел оформить, но не стоит оно того.

truetester
() автор топика

Есть libiconv. Придётся дописать обёртку для работы с qt.

ox55ff ★★★★★
()

Все правильно делают.

anonymous
()

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

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

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

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

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

EXL ★★★★★
()

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

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

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

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

Это больше к среднестатистическому объёму SSD.

Всего 5000 программ на Qt с ICU под Windows забьют весь 250 ГБ накопитель.

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

Ясно с тобой, совсем что ли голодный? Или бабы не дают?

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

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

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

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

Xml

Так он вроде уже. Его нужно отдельно подключать через QT+=xml, да и библиотека отдельным файлом лежит /usr/lib/libQt5Xml.so.

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

Сам топи 5000 урановых программ в ртути

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

В QtCore тоже есть поддержка XML какая-то базовая.

EXL ★★★★★
()

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

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

In Windows 10 Creators Update, ICU was integrated into Windows, making the C APIs and data publicly accessible.

CrackedMind
()

Дебилы, …

Одна из приятностей 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 ★★★★★
()

В 2019 весь не-юникод пора бы уже окончательно закопать вместе с его адептами.

rebforce
()
Ответ на: комментарий от 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
()
Ответ на: комментарий от fsb4000

именно! будем использовать причесаный вариант wxwidget, который везде будет иметь нативный внешний вид

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

что в нем ужасного? в примерах весьма простой и аккуратный код, на много лучше чем подобный код в ванильном wxWidget

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

C++/boost в принципе убоги, а ужас типа этого ещё хуже.

Ну и хотелось бы увидеть пример реального приложения, а не hello world. Текущие примеры на Qt будут в разы проще. Я молчу про QML.

RazrFalcon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.