czosnek17 Temat założony przez niniejszego użytkownika |
» 2012-07-02 17:02:24 Potrzebne są takie pliki: gtk-x11-2.0 gdk-x11-2.0 atk-1.0 gio-2.0 pangoft2-1.0 gdk_pixbuf-2.0 pangocairo-1.0 cairo pango-1.0 freetype fontconfig gobject-2.0 gmodule-2.0 glib-2.0 Mam je wszystkie (trochę inaczej się nazywają) poza gtk-x11-2.0 i gdk-x11-2.0. W gtk z linku z kursu też nie ma tych plików, a w internecie widzę tylko dla Linuxa. Byłbym bardzo wdzięczny, jeżeli ktoś by podesłał. Przerobiłem trochę kod, aby nie używał tego nieszczęsnego pixbufa i działa :) ale gdy chciałem wyczyścić obrazki to już są błędy... nie wytrzymam... #include <gtk/gtk.h> #include <glib/gerror.h> #include <stdlib.h> #include <gdk-pixbuf/gdk-pixbuf.h>
struct wieledanych { GtkWidget * etykieta; GtkWidget * label; GtkWidget * maluch; GtkWidget * lamb; GtkWidget * oknox; GtkWidget * kontener; };
void dalej( GtkButton * przycisk, gpointer * dane ) { const gchar * lamborg = "lamborghini"; const gchar * malucht = "maluch"; const gchar * wcz = "wczytany"; const gchar * niewcz = "niewczytany"; GtkWidget * kontener2; const gchar * tekst; struct wieledanych * noweDane; GtkWidget * etykieta3; const gchar * txt3; noweDane =( struct wieledanych * ) dane; kontener2 = noweDane->kontener; tekst = gtk_entry_get_text( GTK_ENTRY( noweDane->etykieta ) ); if(( !g_strcmp0( tekst, "lamborghini" ) ) ||( !g_strcmp0( tekst, "maluch" ) ) ) { if( !g_strcmp0( tekst, "lamborghini" ) ) { gtk_container_add( GTK_CONTAINER( kontener2 ), noweDane->lamb ); } if( !g_strcmp0( tekst, "maluch" ) ) { gtk_container_add( GTK_CONTAINER( kontener2 ), noweDane->maluch ); } } else { gtk_image_clear( noweDane->maluch ); gtk_image_clear( noweDane->lamb ); gtk_label_set_text( GTK_LABEL( noweDane->label ), "nieznany pojazd" ); } gtk_widget_show_all( kontener2 ); }
int main( int argc, char * argv[] ) { GtkWidget * ptxt; GtkWidget * napis; GtkWidget * kontener, * kontener2; GtkWidget * linia; GtkWidget * napis2; GtkWidget * przycisk; GtkWidget * okno; GtkWidget * maluch, * lamborgini; GtkWidget * mal = NULL; GtkWidget * lam = NULL; const gchar * tekstt = "TAK."; const gchar * tekstt2 = "NIE."; struct wieledanych wieleDanych; gtk_init( & argc, & argv ); okno = gtk_window_new( GTK_WINDOW_TOPLEVEL ); gtk_window_set_title( GTK_WINDOW( okno ), "Kurs GTK+" ); gtk_window_set_position( GTK_WINDOW( okno ), GTK_WIN_POS_CENTER ); gtk_window_set_default_size( GTK_WINDOW( okno ), 300, 150 ); gtk_window_set_default_size( GTK_WINDOW( okno ), 300, 200 ); przycisk = gtk_button_new_with_label( "dalej" ); gtk_widget_set_size_request( przycisk, 10, 20 ); kontener = gtk_vbox_new( FALSE, 1 ); gtk_container_add( GTK_CONTAINER( okno ), kontener ); napis2 = gtk_label_new( " ~samochód~ " ); mal = gtk_image_new_from_file( "obraz.png" ); lam = gtk_image_new_from_file( "lamb.png" ); if(( mal == NULL ) ||( lam == NULL ) ) gtk_label_set_text( GTK_LABEL( napis2 ), tekstt2 ); else gtk_label_set_text( GTK_LABEL( napis2 ), tekstt ); gtk_box_pack_start( GTK_BOX( kontener ), napis2, FALSE, TRUE, 1 ); linia = gtk_hseparator_new(); gtk_box_pack_start( GTK_BOX( kontener ), linia, FALSE, TRUE, 17 ); kontener2 = gtk_vbox_new( FALSE, 1 ); gtk_container_add( GTK_CONTAINER( kontener ), kontener2 ); napis = gtk_label_new( NULL ); gtk_container_add( GTK_CONTAINER( kontener2 ), napis ); ptxt = gtk_entry_new(); gtk_container_add( GTK_CONTAINER( kontener ), ptxt ); gtk_box_pack_start( GTK_BOX( kontener ), przycisk, FALSE, FALSE, 0 ); wieleDanych.etykieta = ptxt; wieleDanych.label = napis; wieleDanych.lamb = lam; wieleDanych.maluch = mal; wieleDanych.oknox = okno; wieleDanych.kontener = kontener2; g_signal_connect( przycisk, "clicked", G_CALLBACK( dalej ), & wieleDanych ); g_signal_connect( ptxt, "activate", G_CALLBACK( dalej ), & wieleDanych ); g_signal_connect( G_OBJECT( okno ), "destroy", G_CALLBACK( gtk_main_quit ), NULL ); gtk_widget_show_all( okno ); gtk_main(); return 0; }
cannot convert 'GtkWidget*' to 'GtkImage*' for argument '1' to 'void gtk_image_clear(GtkImage*)' |