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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Отладка в Eclipse (QString)  (Прочитано 17987 раз)
Boris
Гость
« : Март 05, 2008, 10:00 »

Eclipse 3.3.1 QTIntegration 101 MinGW
Во время отладки хочу увидеть какая строка в QString

пробовал сделать
Код:
QString str;
....
char *test = str.toAscii().data();

Не помогает мне нужно увидеть не коды а строку прочесть.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Март 05, 2008, 12:37 »

А если вывести ее через мессагу?
QMessageBox::warning(this,"",qsString);
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Март 05, 2008, 13:17 »

Код:
char *test = str.toAscii().data();

Так делать нельзя, т.к. в test будет содержаться невалидный указаьель на данные


По теме: А почему бы не использовать qDebug?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Boris
Гость
« Ответ #3 : Март 05, 2008, 15:27 »

Цитировать
По теме: А почему бы не использовать qDebug?

Да пробовал консоль Eclips'a ни в какую не хочет показывать русские буковки (вместо них кракозяблы) исходники в cp1251
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Март 05, 2008, 19:05 »

Поиграй с кодировками. Улыбающийся
Про tr не забудь.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Boris
Гость
« Ответ #5 : Март 06, 2008, 08:25 »

Дык играю, второй день уже пошел - немогу подобрать.
Код:
        QTextCodec *outcodec = QTextCodec::codecForName("CP866");//Пробовал UTF-8, CP1251
QTextCodec *incodec = QTextCodec::codecForName("CP1251");
QTextCodec::setCodecForTr(incodec);
QString j = tr("Тест");
QString str = tr("Проба") + j;
qDebug() << tr("Проба_2");//Кракозяблы
qDebug() << outcodec->fromUnicode(str).constData();//Кракозяблы
qDebug() << tr("Текст");//Кракозяблы
И так пробовал
Код:
qDebug( QString::fromLocal8Bit( str ) );
qDebug( QString::fromAscii( str ) );
qDebug( QString::fromUtf8( str ) );
qDebug( "Текст" );
//тоже везде кракозяблы

У-У-У Кто нибудь добился того чтобы qDebug() заработал в Eclipse с русскими буковками?
Записан
Alex03
Гость
« Ответ #6 : Март 06, 2008, 08:59 »

А так?
Код:
qDebug( str.toLocal8Bit());
Записан
Tonal
Гость
« Ответ #7 : Март 06, 2008, 11:15 »

Переводи в char* а его выдавай в qDebug.
Для перевода в char* пробуй CP866, CP1251 или UTF-8 - одно, какое-то должно сработать.
Записан
Boris
Гость
« Ответ #8 : Март 06, 2008, 11:41 »

Цитировать
А так?
qDebug( str.toLocal8Bit());

И toAnsii() пробовал ни але.  Плачущий С char'ом тоже игрался, у меня смутные сомнения что там как-то Eclipse настроить нужно... В замешательстве
Может я что-то конечно пропустил.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Март 06, 2008, 12:29 »

А если запустить в простой консоли? Там нужно в 866 переводить. Если все будет нормально, то значит нужно Eclipse настраивать.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Boris
Гость
« Ответ #10 : Март 06, 2008, 13:41 »

Да в консоли с 866 все нормально. Не понятно что нужно Eclips'у и где это нужно у него есть.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #11 : Март 06, 2008, 18:12 »

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

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
uriel
Гость
« Ответ #12 : Март 06, 2008, 19:03 »

Eclipse работает под Linux'ом, вся система на юникоде.
Код:
QString str = QString::fromUtf8("Проверка");
qDebug() << str;
Работает отлично. Ничего отдельно не настраивал.
Записан
Boris
Гость
« Ответ #13 : Март 07, 2008, 08:17 »

WinXP SP2 Eclipse 3.3.1
У меня стоит
QTextCodec::setCodecForCStrings( QTextCodec::codecForName("CP1251") );

Код:
QString str = QString::fromUtf8("Проверка");//не помогает
char *test = str.toAscii().data();
qDebug() << str.fromAscii(test);//то же самое
Записан
uriel
Гость
« Ответ #14 : Март 07, 2008, 18:55 »

А если вот так?
Код:
QString str = QString::fromLocal8Bit ("Проверка");
qDebug() << str;
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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