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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: renderText не выводит заглавные русские буквы  (Прочитано 4446 раз)
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« : Май 20, 2009, 03:41 »

QGLWidget.renderText(  QString::fromUtf8( "АБВГДЕЁЖЗИЙКЛМНОПРСТ....") )

попробуйте плиз у себя кто-нибудь - у меня половина букв в большом регистре не работает

шрифт вывода менять пробовал
« Последнее редактирование: Май 20, 2009, 03:55 от break » Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #1 : Май 26, 2009, 15:58 »

повторно прошу - народ протестите плиз!
Записан
Rcus
Гость
« Ответ #2 : Май 26, 2009, 16:33 »

У меня все работает, но поскольку вы не дали текста теста и мне его пришлось писать самому, то сказать что у вас не так не смогу. А поскольку мне пришлось потратить время, а настроение сегодня отвратное то и текста свое теста представлять не буду.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #3 : Май 26, 2009, 18:32 »

Код:
void CRenderWindow::paintGL()
{
if( !m_bFirstPaint )
renderManager()->updateViews();
drawTitles();

m_bFirstPaint = false;
}

void CRenderWindow::drawTitles()
{
if ( !m_bTitlesEnabled ) return;

QFont font;
font.setPixelSize( 30 );
QFontMetrics fm( font );

int textH = fm.height();

int y = m_nFirstTitle_Y;
for ( int i = 0; i < m_titles.count(); ++i )
{
int textW = fm.width( m_titles[i] );

y = m_nFirstTitle_Y + i*textH;

renderText( (size().width() - textW ) / 2, y, m_titles[i], font );
};

m_nLastTitle_Y = y;
}

void CRenderWindow::moveTitles()
{
// последняя строка скрылась вверху
if ( m_nLastTitle_Y < 0 )
m_nFirstTitle_Y = size().height();
else
m_nFirstTitle_Y -= 1;
}

абсолютный полный код представитьн не могу (по крайней мере пока) т.к. есть не большой 3D движок написанный не мной а другим программистом из нашей компании- но предаолагаю что этон не имеет значения т.к. например все маленькие буквы выводятся нормально, и большинство больших тоже
Записан
Rcus
Гость
« Ответ #4 : Май 26, 2009, 18:48 »

Тестовый код это тот, который можно скопировать и скомпилировать сразу
Код
C++ (Qt)
#include <QApplication>
 
#include <QGLWidget>
 
static QString abc;
 
class GLExample : public QGLWidget
{
public:
   GLExample() : QGLWidget() {}
protected:
   void paintGL() {
       for (int i = 0; i < 0x100; i += 0x40) {
           renderText(10,i+20,abc.mid(i,0x40));
       }
   }
};
 
int main(int argc, char *argv[])
{
   QApplication a(argc,argv);
   for (uchar cell = 0x00; cell < 0xff; ++cell) {
       QChar c = QChar(cell,0x04);
       abc.append(c);
   }
   GLExample glw;
   glw.show();
   return a.exec();
}
 
у меня вот такое работает.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #5 : Июнь 03, 2009, 04:25 »

Спасибо за тестовый код!!!

Он и у меня работает, как оказалось и мой код заработал - видимо после долгой работы просто когда разбирался что-то в видюхе приглючило! А с перезагрузкой все решилось.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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