setCodecForTr w Qt creatorze

0

Blad w kompilacji:

 'setCodecForTr' is not a member of 'QTextCodec'.

w linii:

QTextCodec::setCodecForTr(QTextCodec::codecForName ("UTF-8"));
1

Jeśli używasz Qt 5 (a przypuszczam, że tak), to spróbuj w ten sposób:

QTextCodec::codecForName("UTF-8")
0

Dziala. Problem rozwiazany.

0

Powiedz jaki system i jaki kompilator. I co chcesz osiągnąć...

w Qt5 nie ma setCodecForTr.
To lepiej a zarazem gorzej, bo ustanawiając UTF-8 jedynie słusznym kodekiem zapomnieli, że pod Windows natywnym kodowaniem jest UTF-16 a nie UTF-8.
A żeby było jeszcze śmieszniej, Visual C++ traktuje literały bez L jako będące w bieżącej stronie kodowej (CP1250 w PL).

Jest takie makro QStringLiteral ale jest zepsute (nieprawidłowo zaimplementowane pod Windowsem).

Kiedyś po kilku godzinach kombinowania wymyśliłem takie coś:

    QString s = QString::fromWCharArray(L"zażółć gęślą jaźń");
    ui->pushButton->setText(s);

Działa dobrze pod Qt 5.1.1, QtCreator 2.8.1, kompilator MSVC++ 16.0 z pakietu Windows SDK 7.1

1 użytkowników online, w tym zalogowanych: 0, gości: 1