Transparent Widget Background?
Transparent Widget Background?
Hallo,
wenn man in dem Beispiel QRDIR\demos\gardients auf die Schaltfläche What’s This? drückt, wird ein Infotext angezeigt, welcher halbtransparent unterlegt ist. Der Code dafür befindet sich im QRDIR\demos\shared.
Da das Beispiel recht umfangreich ist, weis in nicht genau was ich alles für mein vorhaben benötige.
Das ganze soll in meinem Programm so aussehen, ich drücke auf eine Schaltfläche und dann wird über dieser ein Infotext und darunter ein Bild angezeigt, welches halbtransparent unterlegt ist, wie in dem Beispiel.
Kann mir jemand einen Tipp und etwas Hilfestellung geben?
Gruß
Marco812
P.S.
Ein kleines Codebeispiel wäre super!
wenn man in dem Beispiel QRDIR\demos\gardients auf die Schaltfläche What’s This? drückt, wird ein Infotext angezeigt, welcher halbtransparent unterlegt ist. Der Code dafür befindet sich im QRDIR\demos\shared.
Da das Beispiel recht umfangreich ist, weis in nicht genau was ich alles für mein vorhaben benötige.
Das ganze soll in meinem Programm so aussehen, ich drücke auf eine Schaltfläche und dann wird über dieser ein Infotext und darunter ein Bild angezeigt, welches halbtransparent unterlegt ist, wie in dem Beispiel.
Kann mir jemand einen Tipp und etwas Hilfestellung geben?
Gruß
Marco812
P.S.
Ein kleines Codebeispiel wäre super!
Zuletzt geändert von Marco812 am 31. Januar 2006 21:29, insgesamt 1-mal geändert.
Ein Codebeispiel hab jetzt zwar nicht, aber sollte nicht so schwer zum Programmieren sein.
Im Prinzip musst du nur die Klasse QWidget neu implementieren und die paint Methode überschreiben (da zeichnest du dann dieses Blatt mit dem Schatten nach). Und dann setzt du einfach die Transparenz von dem Widget auf den Wert den du möchtest. Der QtAssistant sollte alles dafür bereit halten.
Im Prinzip musst du nur die Klasse QWidget neu implementieren und die paint Methode überschreiben (da zeichnest du dann dieses Blatt mit dem Schatten nach). Und dann setzt du einfach die Transparenz von dem Widget auf den Wert den du möchtest. Der QtAssistant sollte alles dafür bereit halten.
Hallo,
danke für den Tipp. Das es so funktioniert habe ich mittlerweile aus dem Beispiel erkennen können, leider scheitert es noch ein bisschen bei der Ausführung, aber ich werde mal schauen wie weit ich komme. Wenn ich es gelöst habe oder eine konkrete frage dazu habe, melde ich mich noch mal.
Gruß
Marco812
danke für den Tipp. Das es so funktioniert habe ich mittlerweile aus dem Beispiel erkennen können, leider scheitert es noch ein bisschen bei der Ausführung, aber ich werde mal schauen wie weit ich komme. Wenn ich es gelöst habe oder eine konkrete frage dazu habe, melde ich mich noch mal.
Gruß
Marco812
wenn du voll transparent meinst: hab ich hier mal beschrieben
Glaube an eine Lösung, nur dann kannst du auch eine finden.
bentutz du Qt 4.*, das statisch kompliliert wurde unter Windows? Da scheint das nämlich irgendwie Probleme zu machen...
Was für ein Widget ist es?
Versuch mal folgendes, setzt nicht nur die Alphas von:
QPalette::Base und QPalette::Background, sondern auch von:
QPalette::Light, QPalette::Dark
und wenn es ein Button ist, setz auch noch die von:
QPalette::Shadow, QPalette::Midlight, QPalette::Mid und QPalette::Button
Hoffe das hilft weiter
Elgrimm Esleborn
PS: Wenn es ein Button ist, ist das Schwarz selbstverständlich, da das Parent bei einem Buttonchild auf das Selbstzeichnen verzichtet, was das "nicht zeichnen" der Stelle verursacht. Und das sieht halt schwarz aus... macht man es statt dessen durchsichtig, so zeichnet das Parent die Stelle und sie ist nicht schwarz.
Was für ein Widget ist es?
Versuch mal folgendes, setzt nicht nur die Alphas von:
QPalette::Base und QPalette::Background, sondern auch von:
QPalette::Light, QPalette::Dark
und wenn es ein Button ist, setz auch noch die von:
QPalette::Shadow, QPalette::Midlight, QPalette::Mid und QPalette::Button
Hoffe das hilft weiter
Elgrimm Esleborn
PS: Wenn es ein Button ist, ist das Schwarz selbstverständlich, da das Parent bei einem Buttonchild auf das Selbstzeichnen verzichtet, was das "nicht zeichnen" der Stelle verursacht. Und das sieht halt schwarz aus... macht man es statt dessen durchsichtig, so zeichnet das Parent die Stelle und sie ist nicht schwarz.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Hallo,
es will nicht funktionieren, ich habe mal den Code angehängt. Benutze Visual Studio 2003, wo kann ich da dynamisch oder statisch einstellen?
Wäre für weitere Hilfe dankbar.
Gruß
Marco812
es will nicht funktionieren, ich habe mal den Code angehängt. Benutze Visual Studio 2003, wo kann ich da dynamisch oder statisch einstellen?
Wäre für weitere Hilfe dankbar.
Gruß
Marco812
- Dateianhänge
-
- Dialog.zip
- (15.49 KiB) 240-mal heruntergeladen
tsja tut mir leid da kann ich nicht helfen...das liegt nämlich daran, dass es ein toplevel item ist...
da solltest du folgendes benutzen:
da solltest du folgendes benutzen:
Code: Alles auswählen
void QWidget::setMask ( const QBitmap & bitmap )
void QWidget::setMask ( const QRegion & region )Glaube an eine Lösung, nur dann kannst du auch eine finden.
mmh ich teste maldesweiteren solltest du QPalette::Button, QPalette::Window und QPalette::Base durchsichtig schalten...
Code: Alles auswählen
QApplication::setStyle ( QStyleFactory::create ( "Windows" ) );Glaube an eine Lösung, nur dann kannst du auch eine finden.