Russian Qt Forum
Ноябрь 26, 2024, 02:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Кодировка строк в плагинах для QtCreator  (Прочитано 8280 раз)
ammaximus
Гость
« : Июнь 25, 2014, 20:53 »

Создаю плагин по канонической инструкции, среда сборки Windows, Qt 4.8.6
Скачал исходники QtCreator, скомпилировал, создаю новый плагин через мастер плагинов, пути к исходникам и к билду указал.
Тут все нормально, простейший плагин из дефолта делается.

Проблемы возникают при попытке работать со строками. Т.е. я не могу написать QString s("string"); нужно обязательно пихать tr("string"), даже для латиницы! Эпичной точкой стала необходимость обрамлять пустые строки QString s = new s(tr(""));, иначе говорит ambigious. Понятно, что свой виджет (который нормально собирается в составе классического проекта) под плагин я так и не допилил ввиду отсутствия должного терпения. У кого было/что делать?

P.s. Ничего кроме tr() не помогает, иногда, соответственно писал QObject::tr(). По умолчанию кодировка файлов исходников - UTF8, с этим уже шаманил, пробовал Win1251 вроде ничего не помогало.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Июнь 25, 2014, 21:32 »

QLatin1String
Записан
ammaximus
Гость
« Ответ #2 : Июнь 25, 2014, 21:39 »

пробовал так, вроде тоже что и без него. А в чем тут принцип с этим latinstring, я что то так и не врубился
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Июнь 25, 2014, 22:27 »

чтобы ненужную конвертацию в юникод для обычных «английских» строк не делать
Записан

Изучением 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
ammaximus
Гость
« Ответ #4 : Июнь 26, 2014, 07:27 »

Мало букв. Что изменилось когда я стал компилировать виджет как плагин? Они по другому собираются? Почему появилась неоднозначность?

QLatin1 помогло, соответственно у меня больше нет русского языка. Что делать?
Записан
ammaximus
Гость
« Ответ #5 : Июнь 26, 2014, 07:38 »

О. Нашел Qtnocastfromascii.  Осталя лишь один вопрос: Зачем они это сделали?
Записан
ammaximus
Гость
« Ответ #6 : Июнь 26, 2014, 15:22 »

Новый вопрос: скачал исходники креатора, собрал релиз, направил туда плагин все работает. Если запускать через свежесобранный креатор, то все работает и отладка и релиз. Но если класть релиз плагина в мой активный креатор при запуске он говорит что проверочная информация для модуля не совпадает.  Что такое? Другой компилятор? Версия qt?
Записан
Bepec
Гость
« Ответ #7 : Июнь 26, 2014, 15:35 »

У тебя есть исходники. Покопайся в них и поймёшь что он проверяет и где он проверяет.
Записан
ammaximus
Гость
« Ответ #8 : Июнь 26, 2014, 23:54 »

Исходники тут не помогли бы. Вот тема, содержащая решение моей проблемы. http://www.qtcentre.org/threads/59506-Qt-Creator-plugin-is-failing-at-startup-with-cannot-load-library
Вкратце: на qt-project выкладываются бины собранные с помощью Visual Studio 2010. Соответственно, поэтому для обеспечения совместимости есть два решения:
1. Собрать креатор под MinGW и пользоваться им (что не очень удобно, т.к. у других такого не будет)
2. Собрать свой плагин с помощью VisualStudio

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

Всем спасибо на помощь. Наконец то усну.
Записан
b-s-a
Гость
« Ответ #9 : Июль 01, 2014, 10:34 »

Зарелизь его в виде патча к qt creator. если твой плагин достоин, то после некоторых изменений его могут включить в master ветку. Если поторопишься, то успеешь в Qt Creator 3.3
Записан
ammaximus
Гость
« Ответ #10 : Июль 01, 2014, 19:46 »

Спасибо, думал об этом и даже создавал здесь тему. Давайте сегодня еще раз выложу, если оцените попробую послать
Записан
b-s-a
Гость
« Ответ #11 : Июль 02, 2014, 12:35 »

Лучше не здесь. Вряд ли кто-то горит желанием распаковывать твой архив. Лучше кинь ссылку на исходники в открытом виде (чтобы смотреть файлы без загрузки) и выложи скриншоты твоего плагина.
Перед отправкой в Qt Creator следует в каждом файле прописать определенную текстовую информацию. Посмотри в плагине TODO.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.125 секунд. Запросов: 23.