[РЕШЕНО] Непонятная проблема с Qt5 (удвоение символов)

Модератор: Модераторы разделов

Ответить
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

[РЕШЕНО] Непонятная проблема с Qt5

Сообщение devilr »

Допустим, у нас есть простейшая программа:

Код: Выделить всё

#include <QApplication>
 #include <QLineEdit>

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);

     QLineEdit wgt;
     wgt.show();
     return app.exec();
 }


Если скомпилировать ее из-под Qt4, то все прекрасно. Все работает так, как задумано.
Если скомпилировать ее из-под Qt5, то есть проблема - при вводе с клавиатуры из одного символа получаю два - сам символ и добавочный символ '0'.
Т.е. строка 'hello' превращается в 'h e l l o', где вместо пробелов стоят '0'. Соотвественно, это не только не дает нормально ввести текст, но и в самом Qt Creator (собранном как раз с помощью Qt5) невозможно писать программы - текст превращается в "строки с квадратиками"
Я с таким встречаюсь впервые - то ли я что-то наконфигурировал, то ли это баг в самом Qt5. Причем это наблюдается как минимум на 2 компьютерах.
Подскажите, как можно решить эту проблему? Хотя бы, с какой стороны начать?

P.S. Qt Creator 3.4.81 Qt 5.6.0 Система gentoo - обновляется ежедневно.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Kopilov
Сообщения: 949
ОС: [K]Ubuntu, Debian

Re: [РЕШЕНО] Непонятная проблема с Qt5

Сообщение Kopilov »

devilr писал(а):
16.04.2015 19:16
строка 'hello' превращается в 'h e l l o', где вместо пробелов стоят '0'
...
Хотя бы, с какой стороны начать?

Пальцем в небо: похоже на UTF-16. Или его надо где-то выключить (если это возможно -- например, в недрах Java тоже все строки именно в нём, но таких глюков нет), или заставить визуальные компоненты понять, что надо отображать UTF-16, а не UTF-8, который по умолчанию в локали.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: [РЕШЕНО] Непонятная проблема с Qt5

Сообщение devilr »

Kopilov писал(а):
16.04.2015 20:06
devilr писал(а):
16.04.2015 19:16
строка 'hello' превращается в 'h e l l o', где вместо пробелов стоят '0'
...
Хотя бы, с какой стороны начать?

Пальцем в небо: похоже на UTF-16. Или его надо где-то выключить (если это возможно -- например, в недрах Java тоже все строки именно в нём, но таких глюков нет), или заставить визуальные компоненты понять, что надо отображать UTF-16, а не UTF-8, который по умолчанию в локали.


Если бы так было все просто. Во-первых, UTF16 начинается с 0, а не заканчивается. А во-вторых - проблема в том, что в остальной системе все нормально. Проблема ТОЛЬКО в программах, собранных с использованием Qt5.
А вообще, рад любым советам.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Kopilov
Сообщения: 949
ОС: [K]Ubuntu, Debian

Re: [РЕШЕНО] Непонятная проблема с Qt5

Сообщение Kopilov »

devilr писал(а):
16.04.2015 20:40
Если бы так было все просто. Во-первых, UTF16 начинается с 0, а не заканчивается.
Может, не учёл.

devilr писал(а):
16.04.2015 20:40
А во-вторых - проблема в том, что в остальной системе все нормально. Проблема ТОЛЬКО в программах, собранных с использованием Qt5.
Так, может, где-то там его по умолчанию и врубили.


А если эти программы с локалью UTF-16 запустить (предварительно создав её) -- что будет?
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: [РЕШЕНО] Непонятная проблема с Qt5

Сообщение devilr »

Kopilov писал(а):
16.04.2015 20:47
А если эти программы с локалью UTF-16 запустить (предварительно создав её) -- что будет?

Не пробовал. Посмотрю чуть позже.
С другой стороны, символы, вроде 0123456789 тоже с этим '0' символом получаются. Ладно, если бы только алфавит...
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20796
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [РЕШЕНО] Непонятная проблема с Qt5

Сообщение Bizdelnick »

devilr писал(а):
16.04.2015 20:40
Во-первых, UTF16 начинается с 0, а не заканчивается.

Он бывает остроконечный и тупоконечный. Остроконечный более распространён, и в нём как раз старший байт в конце.

devilr писал(а):
16.04.2015 20:40
Проблема ТОЛЬКО в программах, собранных с использованием Qt5.

Значит, криво собран Qt5.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: [РЕШЕНО] Непонятная проблема с Qt5

Сообщение devilr »

Bizdelnick писал(а):
16.04.2015 22:00
devilr писал(а):
16.04.2015 20:40
Во-первых, UTF16 начинается с 0, а не заканчивается.

Он бывает остроконечный и тупоконечный. Остроконечный более распространён, и в нём как раз старший байт в конце.

devilr писал(а):
16.04.2015 20:40
Проблема ТОЛЬКО в программах, собранных с использованием Qt5.

Значит, криво собран Qt5.


Пересобирал уж... еще бы вспомнить, после чего такое началось
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: [РЕШЕНО] Непонятная проблема с Qt5

Сообщение devilr »

Похоже, проблема была действительно в Qt5.
Сегодня пришло обновление - и все починилось само.
Как всегда - достаточно описать проблему на форуме и она решается сама. Причем независимо от того, сколько времени до этого существовала проблема. :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Ответить