Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: ammaximus от Июнь 25, 2014, 20:53



Название: Кодировка строк в плагинах для QtCreator
Отправлено: 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 вроде ничего не помогало.


Название: Re: Кодировка строк в плагинах для QtCreator
Отправлено: Авварон от Июнь 25, 2014, 21:32
QLatin1String


Название: Re: Кодировка строк в плагинах для QtCreator
Отправлено: ammaximus от Июнь 25, 2014, 21:39
пробовал так, вроде тоже что и без него. А в чем тут принцип с этим latinstring, я что то так и не врубился


Название: Re: Кодировка строк в плагинах для QtCreator
Отправлено: kambala от Июнь 25, 2014, 22:27
чтобы ненужную конвертацию в юникод для обычных «английских» строк не делать


Название: Re: Кодировка строк в плагинах для QtCreator
Отправлено: ammaximus от Июнь 26, 2014, 07:27
Мало букв. Что изменилось когда я стал компилировать виджет как плагин? Они по другому собираются? Почему появилась неоднозначность?

QLatin1 помогло, соответственно у меня больше нет русского языка. Что делать?


Название: Re: Кодировка строк в плагинах для QtCreator
Отправлено: ammaximus от Июнь 26, 2014, 07:38
О. Нашел Qtnocastfromascii.  Осталя лишь один вопрос: Зачем они это сделали?


Название: Re: Кодировка строк в плагинах для QtCreator
Отправлено: ammaximus от Июнь 26, 2014, 15:22
Новый вопрос: скачал исходники креатора, собрал релиз, направил туда плагин все работает. Если запускать через свежесобранный креатор, то все работает и отладка и релиз. Но если класть релиз плагина в мой активный креатор при запуске он говорит что проверочная информация для модуля не совпадает.  Что такое? Другой компилятор? Версия qt?


Название: Re: Кодировка строк в плагинах для QtCreator
Отправлено: Bepec от Июнь 26, 2014, 15:35
У тебя есть исходники. Покопайся в них и поймёшь что он проверяет и где он проверяет.


Название: Re: Кодировка строк в плагинах для QtCreator
Отправлено: ammaximus от Июнь 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

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

Всем спасибо на помощь. Наконец то усну.


Название: Re: Кодировка строк в плагинах для QtCreator
Отправлено: b-s-a от Июль 01, 2014, 10:34
Зарелизь его в виде патча к qt creator. если твой плагин достоин, то после некоторых изменений его могут включить в master ветку. Если поторопишься, то успеешь в Qt Creator 3.3


Название: Re: Кодировка строк в плагинах для QtCreator
Отправлено: ammaximus от Июль 01, 2014, 19:46
Спасибо, думал об этом и даже создавал здесь тему. Давайте сегодня еще раз выложу, если оцените попробую послать


Название: Re: Кодировка строк в плагинах для QtCreator
Отправлено: b-s-a от Июль 02, 2014, 12:35
Лучше не здесь. Вряд ли кто-то горит желанием распаковывать твой архив. Лучше кинь ссылку на исходники в открытом виде (чтобы смотреть файлы без загрузки) и выложи скриншоты твоего плагина.
Перед отправкой в Qt Creator следует в каждом файле прописать определенную текстовую информацию. Посмотри в плагине TODO.