qt-designer aplikace a čeština
Martin Spirk
Martin.Spirk na pvt.cz
Pondělí Říjen 15 10:15:42 CEST 2001
On Sun 14. October 2001 17:57, you wrote:
> Dne čt 11. říjen 2001 18:32 jste napsal(a):
> > Jiri Kouba wrote:
> > >*.cpp generovaný uic-kem ). Via QTextCodec ? Nenašel jse inverzní
> > > funkci k QString::fromLocal8Bit(), latin1() and utf8()., prostě něco
> > > jako ....:::toLocal8Bit90 .
> >
> > spatne jste hledal - QString::local8Bit();
>
> Tak s tím jsem se dostal relativně nejdál - místo háčkovaných písmen jsou
> otazníky a za nimi řetězec pokračuje.
> *.cpp:vypadá takto :
> CheckBox1->setText( ( QString::fromUtf8( "Jen relativni ýá-ěšč-linky" )
> ).QString::local8Bit() );
No spravna cesta to rozhodne neni, funkce setText() vyzaduje jako parametr
QString, nikoli QCString v iso-8859-2. V predchozim prikladu probiha
trojnasobna konverze
1. fromUtf8 -> z utf8 do QString, tedy asi utf16
2. local8bit -> z utf16 do iso-8859-2
3. konverze parametru z QCString (coz je vlastne char *) -> tedy z iso-8859-2
na utf16
> Úspěšnost dalšího v odpovědích navrženého postupu:
> smazání tr : nezobrazí se ani ýáíéůú
Nemohu posoudit, s uic nedelam ale ocekaval bych ze by to melo stacit a pro
pouziti s designerem by to melo byt nejjednodussi reseni, stacilo by
nadefinovat prazdne makro tr. Nenahradil jste mezitim v ramci pokusu retezec
v utf8 retzecem v iso-8859-2, viz priklad vyse?
> Taky jsem zkusil kodek:
> QTextCodec *codec = QTextCodec::codecForName("ISO 8859-2");
> CheckBox1->setText( codec->fromUnicode( "Jen relativni ýá-ěšč-linky" ) );
> s tímtéž výsledkem , tedy ani čárkovaná diakritika.
Tohle musi fungovat, akorat ze misto fromUnicode by melo byt toUnicode. Sam
to timto zpusobem pouzivam, s tim ze codec mam jako globalni promennou ktera
se inicializuje pri spusteni programu a misto codec->toUnicode() mam
vytvorene makro/inline funkci CZ().
Dalsi funkcni zpusob je
setText(QString::fromLocal8Bit("Jen..."));
ale funfuje to tak, ze pokazde cte locale a vytvari prislusny QTextCodec,
takze pro caste volani to neni tak vhodne.
Martin
Další informace o konferenci Linux