Transparent + Label

Alles rund um die Programmierung mit Qt
Antworten
Red_Hood
Beiträge: 8
Registriert: 23. Januar 2006 11:44
Wohnort: Bremen

Transparent + Label

Beitrag von Red_Hood »

Guten Tag zusammen!
Die Beiträge über den transparenten Hintergrund bei einem QWidget habe ich mir durchgelesen! Ich habe das Problem dass ich den transparenten Hintergrund für ein QLabel benötige!

Meine Frage: Funktioniert es genauso wie beim QWidget oder muss ich da noch mehr Sachen beachten??

:roll: :roll:

Würde mich sehr freuen, wenn mir jemand helfen könnte!
Danke!

MfG
Red_Hood
(Azubi im ersten Ausbildungsjahr)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Transparent + Label

Beitrag von macman »

Red_Hood hat geschrieben:Meine Frage: Funktioniert es genauso wie beim QWidget oder muss ich da noch mehr Sachen beachten??
Hast Du es schon probiert?
Red_Hood
Beiträge: 8
Registriert: 23. Januar 2006 11:44
Wohnort: Bremen

Beitrag von Red_Hood »

Hallo Macman!
Ich habe den Quellcode überarbeitet und es funktioniert nicht!!!
Muss man die transparente Farbe selbst erstellen oder ist die schon bei Qt fest definiert??

MfG
Red_Hood
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Red_Hood hat geschrieben:Ich habe den Quellcode überarbeitet und es funktioniert nicht!!! Muss man die transparente Farbe selbst erstellen oder ist die schon bei Qt fest definiert??
Da ein QLabel auch nur ein QWidget ist, sollte es damit auch so funktionieren. Ansonsten gib mehr Code, ich habe keine Lust selbst was zu schreiben :)
Red_Hood
Beiträge: 8
Registriert: 23. Januar 2006 11:44
Wohnort: Bremen

Beitrag von Red_Hood »

Den Code habe ich aus diesem Forum entnohmen:

Code: Alles auswählen

# include <QWidget>
# include <QBrush>
# include <QPixmap>
# include <QColor>
# include <QPalette>

void SignalDiagram::SetBackgroundImage ( QWidget *fp_widget, const QPixmap *fp_image )
{
   QPalette newPalette = fp_widget->palette ( );
   newPalette.setBrush
   ( QPalette::Base,QBrush ( *fp_image ));

   newPalette.setBrush
   (QPalette::Background,QBrush ( *fp_image ));

   fp_widget->setPalette ( newPalette );
}

QBrush BrushSetAlpha ( QBrush f_brush, const int f_alpha )
{
   QColor color = f_brush.color ( );
   color.setAlpha ( f_alpha );
   f_brush.setColor ( color );

   return f_brush;
}

void SignalDiagram::SetTransparency ( QWidget *fp_widget, bool f_transparent )
{
   int alpha ( 255 );

   if ( f_transparent )
      alpha = 0;

   QPalette newPalette = fp_widget->palette ( );

   newPalette.setBrush ( QPalette::Base, BrushSetAlpha ( newPalette.base ( ), alpha ) ); 
   newPalette.setBrush ( QPalette::Background, BrushSetAlpha ( newPalette.background ( ), alpha ) );

Fehlermeldung: Base ist kein Element von QPalette
Background ist kein Element von QPalette

Hast du en Lösungsweg?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Red_Hood hat geschrieben:Den Code habe ich aus diesem Forum entnohmen:
Dann frag halt mal den Urheber, der übrigens dabei geschrieben hat das es sich um gekürzten Code handelt.
Red_Hood hat geschrieben:Hast du en Lösungsweg?
Ohne was Nachvollziehbares? Nein.
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

ähm welche qt Version verwendest du? Obiger Code tut für 4.*... es kann sein, dass QLabel noch einige weitere ColorRoles setzen muss, glaub aber das geht so... (vllt QPalette::HighlightedText?)

Elgrimm Esleborn
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Red_Hood
Beiträge: 8
Registriert: 23. Januar 2006 11:44
Wohnort: Bremen

Beitrag von Red_Hood »

Hallo Esleborn!!!
Ich benutze die 2.3 Version. Kommen diese Fehlermeldungen jetzt daher, weil ich ne andere Version benutze?

MfG
Red_Hood
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Red_Hood hat geschrieben:Ich benutze die 2.3 Version. Kommen diese Fehlermeldungen jetzt daher, weil ich ne andere Version benutze?
Na das ist doch mal jemand mit Humor. Erwartet aktuelle Techniken in einer 5 Jahre alten Version :)
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

ähm auf Anhieb würd ich sagen, ja das liegt daran :)
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Antworten