[Solved] Menu & Window Caption - special chars aren't displaying correctly
-
I have in caption and in menu special chars like "ľščťžýáíéúäň" - someone from this chars can't display correct in menu & window caption for exaple.: š,č,ž,ť...I don't have any idea how to correct this mistakes...
-
Which platform are you using?
-
Make sure you use the correct encoding when writing these strings. Your source file has to be encoded correctly, as should you convert correctly to QStrings.
-
My advice on this would be to not use those characters in your code at all. In your basic application, you could use English (which has no special characters). Then, you use Qt Linguist to translate your application to the language you require. Of course, you do need to
make all user-visible strings translatable (good idea anyway)
install the translator in your QApplication (see the "documentation":http://doc.qt.nokia.com/4.7/linguist-programmers.html here)
build the .qm files from the .ts files
distribute the .qm files with your application, or build them into the application as a resource
-
-
This sounds like an encoding issue. Do the strings display correctly on a QLabel?
-
The same problem.
-
Then it should be an encoding problem.
I'd suggest you convert the source files into UTF-8. Qt Creator can do this, if you use it.
Then add to your .pro file:
@
CODECFORTR = UTF-8
CODECFORSRC = UTF-8
@And add to your main method:
@
#include <QTextCodec>int main( int argc, char ** argv )
{
QApplication app(argc, argv);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));// your code goes here
}
@You could change UTF-8 to your ISO-8859-xxx version but then you might have problems with other characters, better make it UTF-8 if you set the codecs anyways.
-
Didn't help to me.
-
Can you create a small test program that demonstrates the behavior, then. Just a main method and a small class as GUI.
A screenshot of the test window would help too.
-
Saw a similar problem with the degree symbol ('\260' as a char). I recall the solution was related to which fonts were being used (Linux Font Server silently substituted some of them). Also hard-coding the needed symbol (hence the \260) was part of the solution.
-
[quote author="Peppy" date="1304452100"]
@Andre: That's not neccesary, it's just few strings (about 20)...[/quote]
That was not the point. The point is that it would probably save you from all the encoding issues (including those that may arise if some other dev opens up the file later on in some random editor, and doesn't realize that that is important). -
I am back...so I have this KISS code:
@
#include <QtGui/QApplication>
#include <QtGui/QWidget>
#include <QtGui/QLabel>int main(int argc, char *argv[])
{
QApplication a(argc, argv);QWidget* window = new QWidget(); window->setWindowTitle(QString("ľščťžýáíéäúňô")); window->resize(400,300); window->show(); QLabel* label = new QLabel(window); label->move(100,100); label->setText(QString("ľščťžýáíéäúňô")); label->show(); return a.exec();
}
@
Nothing more. And this is result: !http://i56.tinypic.com/p93qq.png(http://i56.tinypic.com/p93qq.png);!I don't know what's need to change...System font is Tahoma which includes special chars, probably this is an issue on application side...
-
Try to follow Volker's suggestion that he posted 21 hours ago (the .pro file stuff and the encoding stuff in the main function).
-
I've tried, and this is result:
!http://i55.tinypic.com/2lx83s.png(http://i55.tinypic.com/2lx83s.png)!
-
My platform is: Windows XP Pro SP2 SK MUI (EN/RU); Qt 4.7.1
-
[quote author="Peppy" date="1304530509"]I've tried, and this is result:[/quote]
You must actually change the encoding of your file. If you use Qt Creator go to the project pane, then to editor settings and change the default encoding to UTF-8.
For all your files that you have already: open them in Creator, go to menu Edit / Select Encoding... choose UTF-8 and click "save with encoding". This transforms all of your files to UTF-8 encoding.
If you know how to handle the tool, you can use something like recode too, of course. Just make sure Creator reloads the files, if they're open. Otherwise it overwrites the converted files. Better close all files before you do the conversion, quit Creator and open it afterwards.
-
Now it works! Great! Thank you...
-
But it's unbelievable that awful system, why there's no set up option to set up encoding? Now I have to change all files...
-
A few posts ago, it was only a mini project with 20 odd strings...