QGLWidget から派生したクラスを作成しました。
class OpenGLWidget : public QGLWidget
OpenGL ウィジェットの上にテキストを書きたいと思います。したがって、クラスの paintGL() 内で renderText() メソッドを使用しました。
QString s = QString("AaBbCcDd");
renderText(10, 20, s); // picture line 1
私のウィジェットの上に作成されたテキストでは、いくつかの文字が下/上にシフトしています。
この写真を見てください。
たとえば、画像の最初の行では、「C」、「G」、「O」が上にシフトされ、「4」、「5」が下にシフトされます。
フォントとフォントサイズを変更しようとしましたが、これは文字を変更しただけで、問題自体は変更されませんでした:
QFont font = QFont("Arial");
font.setPointSize(18);
renderText(10, 50, s, font); // picture line 2
font = QFont("Times");
font.setPointSize(18);
renderText(10, 80, s, font); // picture line 3
font = QFont("Courier");
font.setPointSize(18);
renderText(10, 110, s, font); // picture line 4
font = QFont("Courier");
font.setPointSize(16);
renderText(10, 140, s, font); // picture line 5
文字を一直線に並べる方法を知っている人はいますか?
また、クラスの paintGL() 内で renderText() の代わりに QPainter::drawText() メソッドを試しました。
QPainter painter(this);
QString s = QString("AaBbCcDd");
painter.drawText(10, 20, s);
この方法でも同じ問題が発生します。
Mac OS 10.7 で Qt Creator 2.4.1 で Qt 4.7.4 を使用しています。