Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: Igors от Май 20, 2017, 12:08



Название: Стрелка в меню
Отправлено: Igors от Май 20, 2017, 12:08
Добрый день

Нашел это (https://unicode-table.com/en/sets/arrows-symbols/). Вбил QChar((uchar(8592)) - стрелки нет (ни в консоли, ни в приложении). Как использовать коды правильно?

Спасибо   


Название: Re: Стрелка в меню
Отправлено: ViTech от Май 20, 2017, 13:01
А в используемых шрифтах эти стрелки есть с такими кодами?


Название: Re: Стрелка в меню
Отправлено: Igors от Май 20, 2017, 14:28
А в используемых шрифтах эти стрелки есть с такими кодами?
Да. Я могу найти левую стрелку в "Special Characters". При попытке скопировать ее в исходники начинает вякать
Цитировать
You are trying to insert characters that cannot be handled by the file's current encoding.  Do you want to convert the file to a richer encoding?
Но я могу скопировать этот символ в текстовый редактор, там все норм. Могу даже записать как PlainText, там получаю 3 байта, в hex: E2 86 90


Название: Re: Стрелка в меню
Отправлено: PimenS от Май 20, 2017, 14:40
ОС какая?

В 10-ке винде проблем вроде не наблюдалось.

Код:
le_filter->setText(QChar(8592));

Все нормально отображается.


Название: Re: Стрелка в меню
Отправлено: Igors от Май 20, 2017, 15:50
Ага, вот где собака порылась

QChar(8592)  // работает
QChar(uchar(8592))  // НЕ работает

По доке так и не понял какая половая разница  ???


Название: Re: Стрелка в меню
Отправлено: ViTech от Май 20, 2017, 16:09
QChar(8592)  // работает
QChar(uchar(8592))  // НЕ работает

При QChar(8592), скорей всего, вызывается конструктор QChar::QChar(int code). uchar (будучи unsigned char) обрезает 8592 до меньшего размера, и в конструктор QChar::QChar(uchar ch) уже не 8592 приходит, а что-то другое.


Название: Re: Стрелка в меню
Отправлено: kambala от Май 21, 2017, 01:49
у uchar же обычно диапазон 0-255


Название: Re: Стрелка в меню
Отправлено: Igors от Май 21, 2017, 10:40
у uchar же обычно диапазон 0-255
Я почему-то был уверен что написал ushort (2 байта)  :)