Russian Qt Forum
Ноябрь 25, 2024, 16:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: LineEdit не отображает русские буквы  (Прочитано 7748 раз)
Radmir
Гость
« : Апрель 25, 2014, 21:17 »

Салют всем кто может (и тем, кто не может, но хочет)!

Вот трабла:
Сделал диалог, в нем есть lineedit, все вроде путем,
запустил прогу, открыл диалог, пытаюсь набрать, но русские буквы не видны, хотя через слот буквы передаются, как это?
кодировка utf-8 для строк, для локали. аглицкие есть, а русских не видно, кто знает, подскажите...

С уважением,
Радмир
Записан
Bepec
Гость
« Ответ #1 : Апрель 25, 2014, 22:00 »

А без кода могу только цыган призвать, они потанцуют, покалякают и баг уведут вместе с вашей программой Улыбающийся
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #2 : Апрель 25, 2014, 22:44 »

А без кода могу только цыган призвать, они потанцуют, покалякают и баг уведут вместе с вашей программой Улыбающийся

Угу, кода не хватает Улыбающийся
Записан

Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #3 : Апрель 26, 2014, 09:45 »

Так а в используемом фонте русские буквы есть?
Записан
Radmir
Гость
« Ответ #4 : Апрель 26, 2014, 16:31 »

Так а в используемом фонте русские буквы есть?

Если этим же фонтом в редакторе крусейдера печатать например monotype, все видать,
может можно задать кодировку диалогу, элементам диалога?

Радмир
Записан
Radmir
Гость
« Ответ #5 : Апрель 28, 2014, 19:11 »

Кое-что прояснилось!
У окна есть свойство locale. Оно указывает язык и страну, в Qt под WinXP у меня окна имеют язык Russian, а страну RussianFederation, а Qt Linux всех установленных версий -
имеют язык Russian, а страну Russia! Но такой страны нет. Наверное надо переустанавливать Qt...
Линукс был установлен для англоязычного юзера, затем Qt, а языковые пакеты для линукса позже - может это повлияло, или это в Creatore что-то не оттуда берется...

С уважением,
Радмир
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #6 : Апрель 28, 2014, 19:22 »

Локаль к вводу русских символов не имеет отношения.
Записан
Radmir
Гость
« Ответ #7 : Апрель 28, 2014, 19:59 »

Символы вводятся, но не отображаются...
тогда что?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #8 : Апрель 28, 2014, 20:03 »

Символы вводятся, но не отображаются...
тогда что?

Наверняка шрифт, но т.к. кода нет, то это просто предположение.
Записан
Radmir
Гость
« Ответ #9 : Апрель 28, 2014, 20:19 »

Код супер простой:
Заходите в Qt Creator, создаете новый проект с формой,
открываете окно mainwindow.ui в дизайнере, вставляете QLineEdit
сохраняете все файлы, и собираете проект.
Это все.
Все же проблема в криэйторе.
Сборка из командной строки парой qmake, make дает исполняемый модуль, который нормально работает с русскими буквами!!!

С уважением,
Радмир.
Записан
Alexu007
Гость
« Ответ #10 : Апрель 29, 2014, 14:34 »

Всё тама вставляется. Ты в main.cpp не забыл вставить русификацию:

Код
C++ (Qt)
#include <QtGui/QApplication>
#include "widget.h"
 
#include <QTextCodec>
 
int main(int argc, char *argv[])
{
  QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251"));
 
   QApplication a(argc, argv);
   Widget w;
   w.show();
 
   return a.exec();
}
 
« Последнее редактирование: Апрель 29, 2014, 14:35 от Alexu007 » Записан
Radmir
Гость
« Ответ #11 : Апрель 29, 2014, 16:05 »

Всё тама вставляется. Ты в main.cpp не забыл вставить русификацию:

Код
C++ (Qt)
#include <QtGui/QApplication>
#include "widget.h"
 
#include <QTextCodec>
 
int main(int argc, char *argv[])
{
  QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251"));
 
   QApplication a(argc, argv);
   Widget w;
   w.show();
 
   return a.exec();
}
 

Конечно кодек для строк, локале,... стоит.

Однако причину нашел.

1. У меня юбунту 13.10
2. Сам я ставил Qt 4.8.4 - собирал сам вместе с webkit-ом, 4.8.5 и 5.2.0
3. При установке ubunt-ы указал поставить Qt и система сама поставила Qt 5.0.2

Так вот, при сборке в Qt creator-e я указал 4.8.2, 4.8.5, 5.2.0 а про 5.0.2 забыл...
Вот и получилось, что во всех qmake генерит разные Makefil-ы, но первые три версии криво поставлены, а родная системная 5.0.2 работает правильно. Ее и оставил в Криэйторе, а остальные нужно сносить, или переставлять...

Все равно всем большое спасибо!
Вопрос закрыт.
С уважением,
Радмир.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #12 : Апрель 29, 2014, 16:16 »

Всё тама вставляется. Ты в main.cpp не забыл вставить русификацию:

QTextCodec::setCodecForCStrings() к вводу русских букв тоже отношения не имеет.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.186 секунд. Запросов: 22.