Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[GTK 2.0] [C++]Ustawienie tła okna

Ostatnio zmodyfikowano 2013-11-04 21:15
Autor Wiadomość
enzoMatrix
Temat założony przez niniejszego użytkownika
[GTK 2.0] [C++]Ustawienie tła okna
» 2013-11-04 01:30:46
Witam. Robię mały programik w GTK. Chcę żeby wyświetlał się w trybie pełnoekranowym i miał tapetę. dzięki temu, że będzie wyświetlany na pełnym ekrane rozmieszczenie przycisków i widgetów będzie zawsze takie samo. Nie umiałem się doszukać gdzie zrobić tapetę było coś na stronie anglojęzycznej ale niestety w Pytkonie napisane. Proszę o pomoc
P-95238
maly
» 2013-11-04 11:02:27
Frazy, które należy wpisać w wyszukiwarkę google:

pierwszy link i znalazłem.
http://stackoverflow.com​/questions/5819493​/gtk-changing-background-image-of-window
P-95244
enzoMatrix
Temat założony przez niniejszego użytkownika
» 2013-11-04 17:46:01
No właśnie to już przeglądałem niestety program miał jakieś błędy i nie chciało mi to zadziałać.
Sory za źle założony temat
P-95282
maly
» 2013-11-04 17:56:58
C/C++
#include <gtk/gtk.h>
#include <stdlib.h>


GtkWidget * SetupWindow( gchar * data, gboolean Transient )
{
    GdkPixmap * background;
    GdkPixbuf * pixbuf;
    GdkScreen * ourscreen;
    GdkColormap * colormap;
    GtkStyle * style;
    GdkColor fg;
    GdkColor bg;
    GError * error = NULL;
    GdkRectangle * rect;
    GtkWidget * window;
   
    pixbuf = gdk_pixbuf_new_from_file( "obrazek.png", & error );
    if( error != NULL ) {
        if( error->domain == GDK_PIXBUF_ERROR ) {
            g_print( "Pixbuf Related Error:\n" );
        }
        if( error->domain == G_FILE_ERROR ) {
            g_print( "File Error: Check file permissions and state:\n" );
        }
       
        g_printerr( "%s\n", error[ 0 ].message );
        exit( 1 );
    }
    gdk_pixbuf_render_pixmap_and_mask( pixbuf, & background, NULL, 0 );
    style = gtk_style_new();
    style->bg_pixmap[ 0 ] = background;
    window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
    gtk_window_set_title( GTK_WINDOW( window ), data );
    // gtk_window_maximize(GTK_WINDOW(window));
    gtk_window_set_modal( GTK_WINDOW( window ), TRUE );
    gtk_window_set_default_size( GTK_WINDOW( window ), 640, 480 );
    gtk_widget_set_style( GTK_WIDGET( window ), GTK_STYLE( style ) );
    gtk_window_set_position( GTK_WINDOW( window ), GTK_WIN_POS_CENTER_ALWAYS );
    gtk_container_set_border_width( GTK_CONTAINER( window ), 14 );
    //if(Transient==TRUE)
    //    gtk_window_set_transient_for(GTK_WINDOW (window),GTK_WINDOW(mainwindow));
   
    gtk_widget_show( window );
    return( window );
}
int main( int argc, char * argv[] )
{
    GtkWidget * win = NULL;
   
    gtk_init( & argc, & argv );
   
    win = SetupWindow( "ala", false ); //gtk_window_new( GTK_WINDOW_TOPLEVEL );
    gtk_widget_realize( win );
    gtk_window_fullscreen( GTK_WINDOW( win ) );
   
    g_signal_connect( win, "destroy", gtk_main_quit, NULL );
   
    gtk_widget_show_all( win );
    gtk_main();
   
    return 0;
}
P-95285
enzoMatrix
Temat założony przez niniejszego użytkownika
» 2013-11-04 21:15:05
Super działa. Dzięki wielkie bo nie potrafilem sobie z tym poradzić. A jak można zrobić żeby obrazek był rozciągany na cały ekran? Bo mi powiela obrazek dalej

Poprawka:) Zrobiłem to w ten sposób, że wyskalowałem obrazek do wielkości ekranu. Wiem, że to trochę na dziko ale obrazek ma być wyświetlany tylko na 1 ekranie i w sumie tylko dla niego to robię.
P-95303
« 1 »
  Strona 1 z 1