Russian Qt Forum
Ноябрь 22, 2024, 17:07
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Статическая сборка 5.14 , сохранение юникода в файле
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Статическая сборка 5.14 , сохранение юникода в файле (Прочитано 7624 раз)
PinkPanther
Самовар
Offline
Сообщений: 169
Статическая сборка 5.14 , сохранение юникода в файле
«
:
Июнь 23, 2020, 12:16 »
Здравствуйте!
Давным-давно не пользовался Qt, и вот опять возникла необходимость... Возникло 2 вопроса общего характера.
1) Как установить/настроить Qt для создания демки, чтобы потом без проблем упаковать релиз каким-нибудь бесплатным инсталлятором и демка запустилась на других машинах? В комплекте должны быть все необходимые файлы. Подключены multimedia, sql, core и виджеты. Имеется ресурсный файл с картинками и звуками. Текущая версия Qt - 5.14.2, 64 бита, MinGW. В целях максимальной совместимости хотелось бы собрать в 32-битном виде.
2) Демка написана для тайских пользователей, в ней много текста на тайском. Интерфейс на тайском, и много тайского текста в базе данных. Интерфейс работает замечательно, но есть процедура, экспортирующая базу в файл. Она создает обычный текстовый файл, скидывает туда строчки базы, и вместо тайских символов в файле сохраняются знаки вопроса. Как сохранить переменные QString (юникод) в текстовом файле? Желательно как читабельный текст, но можно и в бинарном виде.
«
Последнее редактирование: Июнь 23, 2020, 12:24 от PinkPanther
»
Записан
Эвтаназия - наше хобби!
tamplier
Новичок
Offline
Сообщений: 40
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #1 :
Июнь 23, 2020, 13:02 »
1) Вот настройка статической сборки -
https://yourdevice.net/forum/viewtopic.php?f=19&t=1943#p2931
, проверял в Qt ver. 5.3 у меня работало, не знаю как будет в 5.14...
2) Не подскажу, надо интернет листать, но если погуглить, то можно много инфы на эту тему найти. Думаю в сторону этого класса надо копать -
https://doc.qt.io/qt-5/qtextcodec.html
Записан
qate
Супер
Offline
Сообщений: 1177
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #2 :
Июнь 23, 2020, 14:19 »
1. Ничего не надо собирать, особенно статиком, "нарушая" lgpl. Качаешь (если еще нет) 32 битный бинарник- исталлятор, ставишь, компеляешь как обычно
1.1 Собираешь дистр (либы и немного плагинов) в каталог приложения и используя Inno Setup делаешь инсталлятор
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #3 :
Июнь 23, 2020, 14:20 »
2) QTextStream setAutoDetectUnicode(true)
Записан
Изучением 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
PinkPanther
Самовар
Offline
Сообщений: 169
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #4 :
Июнь 24, 2020, 09:29 »
Цитата: qate от Июнь 23, 2020, 14:19
1. Ничего не надо собирать, особенно статиком, "нарушая" lgpl. Качаешь (если еще нет) 32 битный бинарник- исталлятор, ставишь, компеляешь как обычно
1.1 Собираешь дистр (либы и немного плагинов) в каталог приложения и используя Inno Setup делаешь инсталлятор
Да, так можно. Я так делал 3 года назад с какой-то из 5-х версий, но получится пакет размером 1.5 гиг.
А при статической компиляции (правда, на 4-ке) получился экзешник 20 мегабайт со всеми нужными либами внутри + несколько мелких файлов.
Записан
Эвтаназия - наше хобби!
PinkPanther
Самовар
Offline
Сообщений: 169
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #5 :
Июнь 24, 2020, 09:30 »
Всем спасибо за советы, пошел ковыряться...
Записан
Эвтаназия - наше хобби!
tamplier
Новичок
Offline
Сообщений: 40
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #6 :
Июнь 24, 2020, 10:57 »
Цитата: PinkPanther от Июнь 24, 2020, 09:29
Да, так можно. Я так делал 3 года назад с какой-то из 5-х версий, но получится пакет размером 1.5 гиг.
А при статической компиляции (правда, на 4-ке) получился экзешник 20 мегабайт со всеми нужными либами внутри + несколько мелких файлов.
У меня программа скомпилированная на Qt 5.3 получилась 15 Мб (программа содержит разные виджеты, диалоговые окна, есть справка, работает с БД MSSQL и большими текстовыми файлами, и т.д.)
Записан
PinkPanther
Самовар
Offline
Сообщений: 169
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #7 :
Июнь 24, 2020, 12:45 »
Наверное вы добавили библиотеки только тех объектов, которые были использованы в программе. У меня так много всего, что придется долго отбирать, что использовано а что нет.
В соответствии с LGPL лицензией, я, кажется, должен буду добавить к демке не только библиотеки, но и исходники Qt. Мне бы хотелось запихнуть все в один исполняемый файл. Демка не для всеобщего обозрения, а будет высылаться по запросу, в ответ на проявленный интерес. Так что вопросы о нарушении лицензии в данном случае вряд ли уместны... Демка абсолютно бесплатна, а платной версии программы не существует и вряд ли она появится раньше, чем будет куплена коммерческая версия Qt.
Записан
Эвтаназия - наше хобби!
tux
Global Moderator
Бывалый
Offline
Сообщений: 404
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #8 :
Июнь 24, 2020, 14:57 »
Цитата: PinkPanther от Июнь 24, 2020, 12:45
Так что вопросы о нарушении лицензии в данном случае вряд ли уместны...
Почему? Вполне будут уместны. Они будут НЕ уместны, если вы программу используете сами, никому не показывая. А так будет вполне себе нарушение лицензии.
Мне просто интересно - зачем всем именно 1 исполняемый файл? Не проще ли сделасть инсталлятор - он заодно и избавит от вопросов "где та программа, которую я зачем то ставил на прошлой неделе?"
Записан
Digital Art
qate
Супер
Offline
Сообщений: 1177
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #9 :
Июнь 25, 2020, 10:11 »
Цитата: PinkPanther от Июнь 24, 2020, 12:45
В соответствии с LGPL лицензией, я, кажется, должен буду добавить к демке не только библиотеки, но и исходники Qt.
1. если изменений Qt самостоятельно не проводилось, то и нечего прилагать кроме ссылки на Qt
2. выбрать из всего Qt только нужные либы - это не сложно, он даже сам сакет чего ему не хватает
Записан
tamplier
Новичок
Offline
Сообщений: 40
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #10 :
Июнь 25, 2020, 12:48 »
Цитата: tux от Июнь 24, 2020, 14:57
Мне просто интересно - зачем всем именно 1 исполняемый файл? Не проще ли сделасть инсталлятор - он заодно и избавит от вопросов "где та программа, которую я зачем то ставил на прошлой неделе?"
Это риторический вопрос, у каждого свои причины, так же можно спросить, зачем кому-то нужны портабл версии ПО?
Записан
tamplier
Новичок
Offline
Сообщений: 40
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #11 :
Июнь 25, 2020, 12:54 »
Цитата: PinkPanther от Июнь 24, 2020, 12:45
Наверное вы добавили библиотеки только тех объектов, которые были использованы в программе. У меня так много всего, что придется долго отбирать, что использовано а что нет.
В соответствии с LGPL лицензией, я, кажется, должен буду добавить к демке не только библиотеки, но и исходники Qt. Мне бы хотелось запихнуть все в один исполняемый файл. Демка не для всеобщего обозрения, а будет высылаться по запросу, в ответ на проявленный интерес. Так что вопросы о нарушении лицензии в данном случае вряд ли уместны... Демка абсолютно бесплатна, а платной версии программы не существует и вряд ли она появится раньше, чем будет куплена коммерческая версия Qt.
Нет не только, я ничего не менял в добавляемых модулях, потому-что боялся, что что-нибудь не будет работать, а статическая сборка создается мягко говоря не быстро... Там было немало лишнего, что по идее можно было убрать, но как я ранее объяснил не стал этого делать, для меня не критично было сколько весит экзэшник 15 Мб, или 9 Мб... Единственное добавил модуль ms-sql, так-как мне нужен был функционал работающий с ms sql server.
Записан
PinkPanther
Самовар
Offline
Сообщений: 169
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #12 :
Июнь 30, 2020, 19:09 »
Подсчитал объем .dll библиотек в папке компилятора bin, в сумме 110 мегабайт. Если это все, что нужно для запуска приложения на другой машине, то супер.
Записан
Эвтаназия - наше хобби!
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #13 :
Июнь 30, 2020, 19:30 »
что-то многовато
Записан
ArchLinux x86_64 / Win10 64 bit
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Статическая сборка 5.14 , сохранение юникода в файле
«
Ответ #14 :
Июнь 30, 2020, 22:41 »
открой свой экзэшник в программе dependency walker — он покажет требуемые длл
Записан
Изучением 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
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...