setCodecForTr w Qt creatorze

setCodecForTr w Qt creatorze
AS
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 11 lat
  • Postów:3
0

Blad w kompilacji:

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

w linii:

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

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

Kopiuj
QTextCodec::codecForName("UTF-8")
AS
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 11 lat
  • Postów:3
0

Dziala. Problem rozwiazany.

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 6 godzin
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ś:

Kopiuj
    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

edytowany 2x, ostatnio: Azarien

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.