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