Portál AbcLinuxu, 11. května 2025 23:53

Dotaz: [Qt] Problém s kódováním položek menu

skunkOS avatar 22.5.2011 19:22 skunkOS | skóre: 27 | blog: Tak nějak
[Qt] Problém s kódováním položek menu
Přečteno: 197×
Odpovědět | Admin
Ahoj, mám metodu třídy odvozené od QMainWindow a od Ui::MainWindow (vytvořeno v designeru).

V této mětodě si dynamicky tvořím položky menu pomocí cyklu for. Dám jse celou metodu. No a k problému. Kódování popisků vytvořných položek menu je rozhozené. Zdrojový kód je komplet v UTF8. QApplication je nastaveno kompletně na UTF8 (setCodecFor...). Jinde mám kódování v pohodě. Menu vytvořená v designeru šlapou, QStringy a char*y taky nejsou rozsypaný. Jen u těchdlě položek přidanejch touto metodou mám problém no. Zkoušel jsem i různě XXX.toUTF8, toLatin1 apod.

Děkuji za pomoc...
void MainWindow::createConstants() {
......
    names << tr("Ludolfovo číslo") << tr("Číslo e");
    constants << 3.14 << 2.71;

    for (int i = 0; i < constants.size(); i++) {
	   actions << (new QAction("const" + QString::number(i), this));
	   actions.at(i)->setToolTip(QString::number(constants.at(i)));
	   actions.at(i)->setText(names.at(i));
	   connect(actions.at(i), SIGNAL(triggered()), this, SLOT(insertCons()));
	   }
    ui->menuInsertConstant->addActions(actions);
    }
http://martinrotter.github.io
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

skunkOS avatar 22.5.2011 19:36 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: [Qt] Problém s kódováním položek menu
Odpovědět | | Sbalit | Link | Blokovat | Admin
nakonec jsem to vyřešil, trošku jsem to sice znásilnil, ale dejme tomu

.....

actions.at(i)->setToolTip(QString::number(constants.at(i)));

actions.at(i)->setText(QString::fromUtf8(names.at(i).toAscii().data()));

.....

Pokud někdo znáte lepší způsob, tak budu vděčný za tip.
http://martinrotter.github.io
23.5.2011 11:02 Kojot
Rozbalit Rozbalit vše Re: [Qt] Problém s kódováním položek menu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jen hádám, ale asi bude problém s funkcí tr, i když je nasavený UTF-8 pomocí setCodecForTr. Na zkoušku bych zkusil použít trUtf8 místo tr. Ještě v popisu k trUtf8 je tato poznámka:

Note that using the Utf8 variants of the translation functions is not required if CODECFORTR is already set to UTF-8 in the qmake project file and QTextCodec::setCodecForTr("UTF-8") is used.
skunkOS avatar 23.5.2011 11:34 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: [Qt] Problém s kódováním položek menu
No ten CODECFORTR mám dokonce nastaven v projektovým souboru. Zkusím tu funkci trUtf8
http://martinrotter.github.io
skunkOS avatar 23.5.2011 14:57 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: [Qt] Problém s kódováním položek menu
tak to trUtf8 funguje celkem obstojně
http://martinrotter.github.io

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.