crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в qDebug() << QString (еще раз плиз)
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
TiiL Дата 7.7.2011, 8:08
  разобрался.

#include <string>
и ошибки исчезли.
Litkevich Yuriy Дата 7.7.2011, 7:55
  TiiL, делай мнимальный пример, например:
#include <QDebug>

int main(int argc, char** argv)
{
  qDebug() << "test";
}
И смотри будет компилироваться или нет.
Алексей1153 Дата 7.7.2011, 6:29
 
Цитата
c:\Qt\2010.05\mingw\lib\gcc\mingw32\4.4.0\include\c++\ext/iterator:74: error: 'std::input_iterator_tag' has not been declared

c:\Qt\2010.05\mingw\lib\gcc\mingw32\4.4.0\include\c++\ext/iterator: In function 'void __gnu_cxx::__distance(_RandomAccessIterator, _RandomAccessIterator, _Distance&, std::random_access_iterator_tag)':


не прописан какой-то заголовок STL

может

#include <iterator>
TiiL Дата 6.7.2011, 13:56
  да в том и дело что QtDebug or Qdebug одна и таже ошибка!

не хочет он её
RazrFalcon Дата 6.7.2011, 11:53
  #include <QtDebug>
TiiL Дата 6.7.2011, 8:25
  Приветствую, вот есть такое :

#include <QDebug>
код программы...

qDebug() << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n";

код программы...


и сразу вылезают такие ошибки

n file included from c:\Qt\2010.05\qt\include/QtCore/../../src/corelib/tools/qlist.h:50,

from c:\Qt\2010.05\qt\include/QtCore/qlist.h:1,

from c:\Qt\2010.05\qt\include/QtCore/../../src/corelib/tools/qhash.h:48,

from c:\Qt\2010.05\qt\include/QtCore/qhash.h:1,

from c:\Qt\2010.05\qt\include\QtCore/../../src/corelib/io/qdebug.h:46,

from c:\Qt\2010.05\qt\include\QtCore/qdebug.h:1,

from c:\Qt\2010.05\qt\include\QtCore/QDebug:1,

from dos_phys.cpp:16:

c:\Qt\2010.05\mingw\lib\gcc\mingw32\4.4.0\include\c++\ext/iterator:74: error: 'std::input_iterator_tag' has not been declared

c:\Qt\2010.05\mingw\lib\gcc\mingw32\4.4.0\include\c++\ext/iterator: In function 'void __gnu_cxx::__distance(_RandomAccessIterator, _RandomAccessIterator, _Distance&, std::random_access_iterator_tag)':

c:\Qt\2010.05\mingw\lib\gcc\mingw32\4.4.0\include\c++\ext/iterator:87: error: '<anonymous>' has incomplete type

c:\Qt\2010.05\qt\include/QtCore/../../src/corelib/tools/qiterator.h:51: error: forward declaration of 'struct std::random_access_iterator_tag'

c:\Qt\2010.05\mingw\lib\gcc\mingw32\4.4.0\include\c++\ext/iterator: In function 'void __gnu_cxx::distance(_InputIterator, _InputIterator, _Distance&)':

c:\Qt\2010.05\mingw\lib\gcc\mingw32\4.4.0\include\c++\ext/iterator:107: error: '__iterator_category' is not a member of 'std'
Rocky Дата 24.2.2011, 8:50
 
Цитата(shmurva @ 23.2.2011, 22:15) *
3. Чтобы работал интерфейс qDebug() << "MyText";
Надо подключить файл

#include <QtGui>

Достаточно подключать
#include <QDebug>
Litkevich Yuriy Дата 23.2.2011, 22:28
 
Цитата(shmurva @ 24.2.2011, 0:15) *
2. Не будет работать при выводе в консоль
qDebug() << "Этот текст будет в эроглифах"; // перебор вместо "cp1251" других кодировок ничего не дал (может не нашёл просто)
можно, например, сделать так:
void myMessageOutput(QtMsgType type, const char *msg)
{
    QTextCodec *outCodec = QTextCodec::codecForName("IBM866");
    
    switch (type) {
    case QtDebugMsg:{
        QTextStream err(stderr);
        err.setCodec(outCodec);
        err << QString(msg) << endl;
        //fprintf(stderr, "Debug: %s\n", msg);
        break;
    }case QtWarningMsg:
        fprintf(stderr, "Warning: %s\n", msg);
        break;
    case QtCriticalMsg:
        fprintf(stderr, "Critical: %s\n", msg);
        break;
    case QtFatalMsg:
        fprintf(stderr, "Fatal: %s\n", msg);
        abort();
    }
}

int main(int argc, char *argv[])
{
    qInstallMsgHandler(myMessageOutput);
    QApplication app(argc, argv);
    ...

А строковые литералы оборачивать в некую функцию, которая будет корректно перекодировать в UTF-16. Я чаще всего исходники держу в UTF-8, поэтому использую такой способ:
qDebug() << QObject::trUtf8("Этот текст будет в на русском");
хоть перевод его меня и не интерисует. Можно использовать функции QTextCodec.
shmurva Дата 23.2.2011, 22:15
  Русский текст в Qt можно ещё сделать так:

1. Работает для GUI приложений.
Начинает отображаться русский текст, загружаемый из текстовыйх файлов с кодировкой ANSI,
а также введённый в программе руский текств QPlainText успешно сохраняется в файл (через QFile) в кодировке ANSI.

    // Вызвать в любом месте (можно даже в main-функции).
    QTextCodec *codec = QTextCodec::codecForName("cp1251");
    QTextCodec::setCodecForCStrings(codec);
    // После этого загружается и отображается русский текст
    // как в GUI так и в сохраняемых текстовых файлах (ANSI)


Взято от сюда

2. Не будет работать при выводе в консоль

qDebug() << "Этот текст будет в эроглифах"; // перебор вместо "cp1251" других кодировок ничего не дал (может не нашёл просто)

3. Чтобы работал интерфейс qDebug() << "MyText";
Надо подключить файл
#include <QtGui>
Litkevich Yuriy Дата 30.10.2008, 7:15
  smooky, скажи еще версию Qt, лучше так посмотреть:
qmake -v
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 16.4.2024, 14:54