Seite 1 von 1
QGraphicsView transparent [Gelöst]
Verfasst: 7. März 2011 12:33
von dazedly
Ich versuche schon seit ner ganzen Weile einen Weg zu finden das QGraphicsView und die Scene Transparent zu bekommen. Es sollen nur die Items angezeigt werden. Das View ist frameless.
Ich hab auch schon die Window Farbe aus der Standardpalette benutzt.
Code: Alles auswählen
QPalette pal;
scene->setBackgroundBrush(pal.window());
nur irgendwie ist das ein helleres Grau, als das von den Widgets hinten dran...
Hat Jemand noch nen Tipp, oder ne Lösung?
Verfasst: 7. März 2011 13:07
von franzf
Kannst du mal bitte etwas genauer erklären?
Ist deine View ein Toplevel-WIndow, sieht man da dann die darunter liegenden anderen Fenster (also Programme) hindurch?
Oder ist die View nur ein Overlay über ein anderes Widget in deinem Programm?
Verfasst: 7. März 2011 14:07
von dazedly
Das View ist ein Child von einem TabWidget, es ist in einem Layout darin. Ich möchte, dass man dur das View und die Scene das TabWidget sehen kann, oder es soll die Selbe BakgroundColor haben.
Verfasst: 7. März 2011 16:49
von franzf
Code: Alles auswählen
QPalette pal = graphicsView->palette();
QColor baseColor = pal.color(QPalette::Base);
baseColor.setAlpha(100);
pal.setColor(QPalette::Base, baseColor);
graphicsView->setPalette(pal);
Prinzipiell: Willst du die Farben eines bestimmten Widgets ändern, nimm dir die aktuelle Palette des betreffenden Objekts, damit wirklich nur die Werte verändert werden, die es brauchen.
Das Ändern des BackgroundBrush bringt nichts, da dieser über den Hintergrund des ScrollArea malt, und deshalb auch keine Transparenz entsteht.
Verfasst: 14. März 2011 12:50
von dazedly
Ich hab das jetzt ausprobiert, aber leider ist das Grau immer noch zu hell.
Verfasst: 14. März 2011 13:16
von franzf
Kannst du den Code zeigen, der bei dir grad läuft? Am besten in Form eines kompletten, funktionsfähigen, minimalen Beispiels.
Man sieht zwar einen leicht helleren Bereich, das kann aber auch vom Oxygen-style kommen. Bei dir ist eine GroupBox involviert (schaut jedenfalls so aus), die hat einen leicht helleren Background.
Verfasst: 14. März 2011 13:37
von dazedly
Hier, hab ich mal eben mit dem QtCreator gemacht. Ich hoffe mal, es hat den selben Effekt wie bei mir.
Verfasst: 14. März 2011 13:44
von franzf
Tjo, da hätte ich doch richtig gelegen:
Alpha reicht von 0 (transparent) bis 255 (opaque). Du hast die 100 aus meinem Beispiel übernommen. Das ergibt in der Summe bei Überlagerung eine andere Farbe.
Wenn du die view voll transparent (setAlpha(0)) machst, sollte die Farbe passen. Mir war nicht klar, dass du volle Transparenz haben willst, dann hätte ich in meinem Beispiel gleich die 100 durch eine 0 ersetzt.
Verfasst: 14. März 2011 14:05
von dazedly
oha.... bin doof -.- Sorry, wenn ich nicht nur einfach stupide kopiert hätte, wäre mir das sicher auch aufgefallen. Danke für deine Hilfe, jetzt siehts richtig aus!
Verfasst: 14. März 2011 14:11
von franzf
Kein Problem

Bekanntermaßen produziert Copy/Paste die schwersten Fehler.