Hintergrundbild



  • Ich möchte ein Hintergrundbild hinter meiner Kompletten Anwendung einfügen.
    Wie mach ich das am Besten? Bin unter Linux und hab bis jetzt mit gtkmm
    gearbeitet.

    Tipps, Ideen?



  • Was meinst du mit "Hinter deinem Programm einfügen"? Als Hintergrundbild auf dem Fenster oder als Desktop Hintergrundbild?



  • Also etwas Detailierter...

    Ich habe eine kleine Anwendung geschrieben (c++), ok,
    besteht eigentlich nur aus ein Paar Gtk::Labels und
    aus Gtk::DrawingAreas, das funktioniert auch alles Prima,
    aber ich würde gerne den Ganzen freien Bereich der noch überig
    ist mit einem Großen bild belegen, aber ich will nicht,
    das einzelen zerschneiden und dann irgendwie da rein fummeln,
    quasi vor alles gemacht wird, einmal das Bild malen und dann
    ist gut. 🙂 Die Bereiche wo die anwendung abläuft soll dann
    einfach ummalt werden.

    hoffe es ist klar was ich meine.
    Danke!



  • machst Du so:

    main.cpp

    void SetBackgroundImage ( QWidget *fp_widget, const QPixmap *fp_image )
    {
       QPalette newPalette = fp_widget->palette ( );
       newPalette.setBrush( QPalette::Base,//Qt::SolidPattern QBrush ( *fp_image ));
       newPalette.setBrush
       (
          QPalette::Background,//Qt::SolidPattern
          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 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 ) );
       fp_widget->setPalette ( newPalette );
    }
    

    und Aufruf dann mit:

    SetBackgroundImage ( view, &pm_hinter);
            SetTransparency (view, true);
    

    wobei &pm_hinter das Qpixmap-Bild ist....
    funktioniert prima !

    mfg
    hilby
    :xmas1:



  • @hilby mit dem kleinen Unterschied das er das für GTKmm haben möchte und nicht für QT 😉

    @chris83 du könntest versuchen modify_bg_pixmap() zu verwenden. aber ich bin mir nicht sicher ob das geht ich hab sowas noch nie gebraucht.

    BR
    evilissimo.



  • aso - hab ich im Eifer übersehen 🙄


Anmelden zum Antworten