ich programmiere gerade meine eigene Diagramm Abbildungsklasse für Qt. Nun habe ich das Diagramm erstellt und lasse es über einen QPainter ausgeben. Über QPainter.translate und QPainter.scale verschiebe und skalieren ich das Diagramm. Nun habe ich aber das Problem, wenn ich recht kleine Wertebreiche habe (so zwischen 0.001 und 0.002) erhalte ich natürlich enorm große Skallierungsfaktoren (so um die 2000). Das Diagramm ansich wird einwandfrei dargestellt, allerdings ist die Schriftgöße unendlich groß.
Meine Frage ist nun wie kann ich den Text vom skalieren ausnehmen, eine feste Größe einstellen oder zumindest wieder einzeln herunter skalieren?
Das ist mein Paintevent
Code: Alles auswählen
void QTDiagramPlotter::paintEvent(QPaintEvent *e)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
drawFrame(&painter);
if(m_dataObject->isReadyToDraw())
{
drawOverlay(&painter);
painter.translate(m_poo);
painter.scale(m_xScale,-m_yScale);
drawAxis(&painter);
drawDataRows(&painter);
if(m_dataObject->getShowDataPoints())
drawDataPoints(&painter);
}
}
Code: Alles auswählen
void QTDiagramPlotter::drawAxis(QPainter *painter)
{
//Koordinatensystem
painter->setRenderHint(QPainter::Antialiasing, false);
painter->drawLines(m_dataObject->getCoordinateSystem()->getCoordinateSystem());
//Pfeile
//painter->drawLines(m_dataObject->getCoordinateSystem()->getArrows());
//***Achseinteilung
//Beschriftung
if(true)
{
painter->scale(1.0,-1.0);
for (int i=0; i<m_dataObject->getCoordinateSystem()->getTickCaptionPoints().size();i++)
{
painter->drawText(m_dataObject->getCoordinateSystem()->getTickCaptionPoints()[i],m_dataObject->getCoordinateSystem()->getTickCaption()[i]);
}
painter->scale(1.0,-1.0);
}
}
Code: Alles auswählen
QFont tmpFont;
tmpFont = painter->font();
tmpFont.setPointSizeF(10/m_yScale);
painter->setFont(tmpFont);
Habe auch schon das Forum durchsucht, aber nichts gefunden, was irgendwie zu meinem Problem passt.
Bin für jede Hilfe dankbar.
Gruß
Groove