Qt4: QPainter -> scale

Alles rund um die Programmierung mit Qt
Antworten
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

Qt4: QPainter -> scale

Beitrag von nando »

Hi....

ich habe ein widget das etwas zeichnet..... (in paintEvent)...
dann skaliere ich den painter mit painter.scale(...)...


obwohl das widget skaliert wurde zeigt mir widget->width() bzw. widget->height() immer die gleichen werte an.. das is ja auch gut so..

aber wie bekomme ich den wert, den das skalierte widget wirklich braucht...?

ich hab naemlich eine art grid layout das lauter (skalierte) widget darstellen soll.... wenn ich die widgets kleiner skaliere werden sie auch kleiner, aber die abstaende zwischen den verkleinerten widgets im grid bleiben unverändert, weil ja width() und height() immer noch gleich ist.......

ich muss irgendwie an die werte kommen die das skalierte widget tatsaechlich benoetigt....



gruss,
nando
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Die Widgetgröße hat nichts mit dem Painter zu tun und ist somit unabhängig von einer event. Skalierung. Die benötigten Werte mußt du dir somit auch selbst berechnen, was aber nicht wirklich ein Problem darstellen dürfte...
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

Beitrag von nando »

ja okay, aber wie bekomme ich denn dann die pixel anzahl, die mein skalierter QPainter braucht.. ?????

ich habe es probiert auszurechnen.. aber das funzt irgendwie nicht...

etwas so....

Code: Alles auswählen


paintEvent()
{
...
    painter.scale(m_scale, m_scale);
}

.....

// SLOT
void
class::zoomIn()
{
   m_scale += 0.1;

   repaint();

   resize(width()   + width() * 0.1,
             height() + height() * 0.1);
}



Irgendwie stimmt die neue width nie mit der berechneten ganz ueberein.....

gibt es einene einfacheren weg an die width zu kommen, die mein skalierter painter belegt?

gruss,
nando
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich dachte ja eher an scale*width...
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

Beitrag von nando »

hab ich auch erst... aber die width() aendert sich ja mit jedem slot aufruf...

und wenn ich scale * width machen wuerde, wuerde ich den scale auf die neuen groessen und nicht auf die ausgangsgroesse anwenden....
Antworten