boundingRect für graphicItems -> abhängig von zoom

Alles rund um die Programmierung mit Qt
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Dann speicher doch yScale global... der wird doch jeden paintEvent geupdatet...
Das war auch so gedacht:
Du speicherst für die Views den entsprechenden zoom Faktor und rufst ihn dann in der boundingRect funktion ab, weil du ja weisst in welchem view dud dich gerade befindest.

Wenn du aber den einen eigenen View implementierst, kannst du den zoomFaktor auch global speichern und dann per funktion abfragen.
q-tee
Beiträge: 32
Registriert: 17. September 2007 17:43

Beitrag von q-tee »

KernelPanic hat geschrieben:[...], weil du ja weisst in welchem view du dich gerade befindest.
eben nicht! oder verrat mir wie ich das rauskriegen kann...
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

jaa.... sry ich vergas das views eine Liste zurückgibt...
kannst du mir noch mal so ein feines codebeispiel senden? dann kann ich selber mal ein wenig fummeln...
q-tee
Beiträge: 32
Registriert: 17. September 2007 17:43

Beitrag von q-tee »

hab mal wieder alles unnötige rausgeworfen.

varRect wird von seiner (0,0)-position nach rechts gezeichnet, fixRect nach links.
beim stauchen in y-richtung (linke view) passiert nix schlimmes, weil ja alles im boundingRect bleibt. es wird zwar nich korrekt berechnet aber schadet nicht.
wenn ich aber in y-richtung strecke (rechte view) bleiben natürlich reste weil das boundingRect zu klein ist.

Bild

wenn noch fragen sind einfach melden...

mal wieder ein dankeeeeee
Dateianhänge
fixrect.zip
(10.57 KiB) 233-mal heruntergeladen
q-tee
Beiträge: 32
Registriert: 17. September 2007 17:43

Beitrag von q-tee »

bei mir is gestern der server abgeraucht, das heißt ich kann im moment nichts programmieren aber dafür um so mehr nachdenken ;-) leider fehlt immernoch die zündende idee.

@KernelPanic: dir is aber auch nichts mehr eingefallen oder?
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

.
ging doch ganz leicht :D
QHash mit QGraphicsView und yScale und schon is alles gut :wink:
q-tee
Beiträge: 32
Registriert: 17. September 2007 17:43

Beitrag von q-tee »

hmmm gefällt mir nich so wirklich, deine lösung. die aktualisierung von par is ja recht wahllos und trifft auch nich immer:

wenn ich rechteck 2 auf view2 von oben nach unten über rechteck1 ziehe ist zB der falsche scale-faktor gespeichert...

wäre ja zu schön gewesen :cry: danke für deine mühen aber ich fürchte in paint() was speichern und in boundingRect() abrufen is zu unzuverlässig...
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

das war ja auch nicht die endgültige lösung....
das war nur ein anstoss, ich mach dir doch nicht die ganze arbeit :wink:
q-tee
Beiträge: 32
Registriert: 17. September 2007 17:43

Beitrag von q-tee »

das erwarte ich auch nich... den anstoss haste mir ja schon vor zwei wochen gegeben, hatte ich da auch verstanden und ich hab gesagt er funktioniert so nich... jetzt haste mir den beweis dafür programmiert :roll:
hatte mir eben ne möglichkeit gewünscht in der es zuverlässig funktioniert.
aber finds prima dass du versuchst mir zu helfen.

da das thema ItemIgnoresTransformations auch mit Qt4.3 noch sehr neu is machen wir auch den ersten google-treffer zum thema "boundingrect itemignorestransformations" und "boundingrect scale" :wink:
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

:? funktioniert ja wohle!
bei mir ist kein fehler mehr aufgetreten... ich weiss das das nicht diie lösung ist, aber mir ein bisschen feintuning wirds funktionieren, ansonsten kannst du das eh vergessen... ich wüsste keine andere möglichkeiten den view mit derm zoomfaktor zu verbinden...
q-tee
Beiträge: 32
Registriert: 17. September 2007 17:43

Beitrag von q-tee »

q-tee hat geschrieben:wenn ich rechteck 2 auf view2 von oben nach unten über rechteck1 ziehe ist zB der falsche scale-faktor gespeichert...
tritt der fehler denn bei dir nich auf? bei mir wird rechteck1 dann falsch gezeichnet (fixRect zu klein)
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

nein er tritt wirklich nicht auf...
ich benutze linux, du windows denke ich. und genau genommen ist das update vom zoomFaktor in dem paint auch net sooo toll....
man müsste das eig nur updaten, wenn sich der faktor ändert.
q-tee
Beiträge: 32
Registriert: 17. September 2007 17:43

Beitrag von q-tee »

bin auch unter linux (suse 10.0) unterwegs. und um das zoomFaktor-update im hash geht es ja auch nich, sondern um das setzen des aktuellen view-widgets.

Code: Alles auswählen

	par = qobject_cast<QGraphicsView*>(widget);
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

ja. das mein ich ja... das müsste iwie direkt in bounding rect gemacht werden....
oder anders übergeben werden. da muss ich mir was ausdenken, bzw wenn du eine lösung hast, wüsste ich die auch gern.

naja, hab en bisschen geflunkert. hab nur linux unterstützung unter bsd aktiv, aber das sollte normal keinen unterschied machen....
q-tee
Beiträge: 32
Registriert: 17. September 2007 17:43

Beitrag von q-tee »

Bild
entweder unseren hirnen entspringt noch eine tolle idee oder trolltech sollte da in Qt4.4 nachlegen...
Dateianhänge
fixrect.tar.gz
(13.21 KiB) 192-mal heruntergeladen
Antworten