Русский шрифт в QTreeView |
Здравствуйте, гость ( Вход | Регистрация )
Русский шрифт в QTreeView |
igorenja |
4.3.2010, 6:14
Сообщение
#1
|
Студент Группа: Участник Сообщений: 22 Регистрация: 18.1.2010 Пользователь №: 1384 Спасибо сказали: 1 раз(а) Репутация: 0 |
Доброе время суток!
Возможно об этом уже писалось, но я найти не смог.... Ситуация следующая: Есть окошечко в котором есть такой код CODE QTextCodec *codec = QTextCodec::codecForName("windows-1251"); QTextCodec::setCodecForTr(codec); QTextCodec::setCodecForLocale(codec); BtnBack = new QPushButton(this); BtnBack->setText(QString(tr("Назад"))); model = new QDirModel(this); tree = new QTreeView(this); tree->setModel(model); В общем под виндой всё нормально, а вот под линуксом проблема. Если есть имена директорий/файлов на русском языке, то отображаются крокозябры... В то же время кнопочка по русски нормально отображается.. |
|
|
maint |
4.3.2010, 6:57
Сообщение
#2
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
Доброе время суток! Возможно об этом уже писалось, но я найти не смог.... Ситуация следующая: Есть окошечко в котором есть такой код CODE QTextCodec *codec = QTextCodec::codecForName("windows-1251"); QTextCodec::setCodecForTr(codec); QTextCodec::setCodecForLocale(codec); BtnBack = new QPushButton(this); BtnBack->setText(QString(tr("Назад"))); model = new QDirModel(this); tree = new QTreeView(this); tree->setModel(model); В общем под виндой всё нормально, а вот под линуксом проблема. Если есть имена директорий/файлов на русском языке, то отображаются крокозябры... В то же время кнопочка по русски нормально отображается.. или все держать в UTF-8, или условная компиляция где #ifdef винда QTextCodec *codec = QTextCodec::codecForName("windows-1251"); #endif #ifdef юникс с koi8 QTextCodec *codec = QTextCodec::codecForName("KOI8-R"); #endif #ifdef юникс с UTF8 и т.д |
|
|
igorenja |
4.3.2010, 7:20
Сообщение
#3
|
Студент Группа: Участник Сообщений: 22 Регистрация: 18.1.2010 Пользователь №: 1384 Спасибо сказали: 1 раз(а) Репутация: 0 |
Поставил UTF8 и всё заработало, пасиб
|
|
|
Litkevich Yuriy |
4.3.2010, 9:28
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
igorenja |
4.3.2010, 13:21
Сообщение
#5
|
Студент Группа: Участник Сообщений: 22 Регистрация: 18.1.2010 Пользователь №: 1384 Спасибо сказали: 1 раз(а) Репутация: 0 |
igorenja, вот этот кодэк зачем устанавливаешь QTextCodec::setCodecForLocale(codec); ?Я так понимаю что именно он задает ту кодировку в которой отображается QTreeView... Если эту строку закоментить то нифига не работает, проверено опытным путём. Сейчас работает вот так: CODE QTextCodec *codec = QTextCodec::codecForName("UTF8"); QTextCodec::setCodecForTr(QTextCodec::codecForName("windows-1251")); QTextCodec::setCodecForLocale(codec); BtnBack = new QPushButton(this); BtnBack->setText(QString(tr("Назад"))); BtnBack->show(); Но появилась новая проблема. виндовую шару, которая подмонтирована, он отображает вопросиками..... Вот теперь вопрос мона ли сделать так чтоб всё отображалось по-человечески? |
|
|
Litkevich Yuriy |
4.3.2010, 13:56
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
стандартная настройка выглядит так:
Замени UTF-8 на ту кодировку в которой у тебя исходники. Установка setCodecForCStrings нужна для корректной работы некоторых СУБДвиндовую шару, которая подмонтирована, он отображает вопросиками настраивай кодировку в опция монтирования. Это относится к ФС лунуха, а не к Qt.
|
|
|
Текстовая версия | Сейчас: 15.1.2025, 9:56 |