Important: Please read the Qt Code of Conduct -

QString with diacritical characters

  • Hello,

    I have made a keyboard with all characters I need, also
    with diacritical characters.
    A Signalmapper mapped with the hex-Code of the character, gives me the
    pressed key.
    But if I press one of the diacritical characters, the program
    doesn't accept it.

    For example:
    ushort from Signalmapper is 0x010C (C with caron).
    I append it to the string tmpString.append(QString::fromUtf16(0x010C,1));

    But this doesn't work, can anybody help me with my problem.
    I really don't know how I get the diacritical symbols working.

  • I think your use of fromUtf16 is wrong. It expects a c type string in the right encoding, but you're giving it a UTF code point and a length 1. Perhaps you're looking for [[doc:QChar]]? You can create those using the code point, and you can append them to a QString.

  • now I tried it with QChar and it doesn't work.

    @Signalmapper -> 0x0152 -> QChar test(0x0152)
    QString testString;

    Edit: added @ tags around code section; Andre

  • The, something else is off. This code works for me:

    MainWindow::MainWindow(QWidget *parent) :
    ui(new Ui::Dialog)
    QChar test(0x0152); //this code might as well come from somewhere else...
    QString testString;


    And please, use @ tags around code sections. They become much easier to read.

  • Is there a global settings for the encoding of a label?
    I wrote the code like above, but it doesn't work.
    could this be a problem of the embedded linux?

  • Well, I got this as the label: Œ
    That is the correct code point according to the character map application. Using 0x010C results in Č as the contents of my label. Looks good to me.

    Are you sure your font actually contains these code points?

  • i am using the Liberation font and this pdf "Liberation": shows the included charaters.
    i tried it with Æ and this works.

    I have found the problem.
    qt uses the fonts in /usr/lib/fonts/ instead of /usr/share/fonts/
    and if the label is set to Liberation, qt uses a other font
    in its folder.

Log in to reply