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

[GTK+] Jak w końcu idzie ten program...

Ostatnio zmodyfikowano 2012-09-26 21:14
Autor Wiadomość
czosnek17
Temat założony przez niniejszego użytkownika
» 2012-08-29 19:25:57
No to czemu nie umieścisz odczytania zawartości pola tekstowego w procedurze obsługi eventu clicked?
Dobry pomysł, ale jak to zrobić? Zrobiłem takie coś, ale efektem jest "wystąpił problem z aplikacją...". Spodziwałem się, że to nie zadziała :(

g_signal_connect( G_OBJECT( sss->wprowadz ), "clicked", G_CALLBACK( sss->wczyt = gtk_entry_get_text( GTK_ENTRY( sss->poletxt ) ) ), NULL );
P-63975
m4tx
» 2012-08-29 19:27:49
G_CALLBACK to wskaźnik na funkcję. Inaczej mówiąc - jak nie wsadzisz tego:
sss->wczyt = gtk_entry_get_text( GTK_ENTRY( sss->poletxt ) )
 do oddzielnej funkcji, to po prostu nie zadziała.
P-63976
xevuel
» 2012-08-29 19:29:44
C/C++
void pobierz( GtkWidget * przycisk, gpointer dane )
{
    struct struktura * sss;
    sss =( struct struktura * ) dane;
    gtk_widget_hide( sss->graj );
    const gchar * zzz = "";
   
    const gchar * nic = "nic";
    const gchar * zle = "zle";
    const gchar * tr = "true";
    const gchar * fa = "false";
   
   
    //const gchar * wczyt;
    const gchar * tab[ 10 ] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
    sss->wczyt = gtk_entry_get_text( GTK_ENTRY( sss->poletxt ) );
   
    if( !g_strcmp0( sss->wczyt, tab[ 0 ] ) ||
    !g_strcmp0( sss->wczyt, tab[ 1 ] ) ||
    !g_strcmp0( sss->wczyt, tab[ 2 ] ) ||
    !g_strcmp0( sss->wczyt, tab[ 3 ] ) ||
    !g_strcmp0( sss->wczyt, tab[ 4 ] ) ||
    !g_strcmp0( sss->wczyt, tab[ 5 ] ) ||
    !g_strcmp0( sss->wczyt, tab[ 6 ] ) ||
    !g_strcmp0( sss->wczyt, tab[ 7 ] ) ||
    !g_strcmp0( sss->wczyt, tab[ 8 ] ) ||
    !g_strcmp0( sss->wczyt, tab[ 9 ] ) ||
    !g_strcmp0( sss->wczyt, zzz ) )
    {
       
       
        if( !g_strcmp0( sss->wczyt, tab[ 0 ] ) )
        {
            gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 0 ] );
            sss->liczbazm = 1;
        }
       
        if( !g_strcmp0( sss->wczyt, tab[ 1 ] ) )
        {
            gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 1 ] );
            sss->liczbazm = 2;
        }
       
        if( !g_strcmp0( sss->wczyt, tab[ 2 ] ) )
        {
            gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 2 ] );
            sss->liczbazm = 3;
        }
       
        if( !g_strcmp0( sss->wczyt, tab[ 3 ] ) )
        {
            gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 3 ] );
            sss->liczbazm = 4;
        }
       
        if( !g_strcmp0( sss->wczyt, tab[ 4 ] ) )
        {
            gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 4 ] );
            sss->liczbazm = 5;
        }
       
        if( !g_strcmp0( sss->wczyt, tab[ 5 ] ) )
        {
            gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 5 ] );
            sss->liczbazm = 6;
        }
       
        if( !g_strcmp0( sss->wczyt, tab[ 6 ] ) )
        {
            gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 6 ] );
            sss->liczbazm = 7;
        }
       
        if( !g_strcmp0( sss->wczyt, tab[ 7 ] ) )
        {
            gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 7 ] );
            sss->liczbazm = 8;
        }
       
        if( !g_strcmp0( sss->wczyt, tab[ 8 ] ) )
        {
            gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 8 ] );
            sss->liczbazm = 9;
        }
       
        if( !g_strcmp0( sss->wczyt, tab[ 9 ] ) )
        {
            gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 9 ] );
            sss->liczbazm = 10;
        }
       
        sss->sprawdzdane = true;
       
        if( !g_strcmp0( sss->wczyt, zzz ) )
        {
            gtk_label_set_text( GTK_LABEL( sss->etykieta ), nic );
            sss->sprawdzdane = false;
        }
       
    } //if
    else
    {
        gtk_label_set_text( GTK_LABEL( sss->etykieta ), zle );
        sss->sprawdzdane = false;
    }
   
    gtk_entry_set_text( GTK_ENTRY( sss->poletxt ), zzz );
   
    if( sss->sprawdzdane == true )
         gtk_label_set_text( GTK_LABEL( sss->etykieta ), tr );
    else
         gtk_label_set_text( GTK_LABEL( sss->etykieta ), fa );
   
    //TUTAJ ODCZYTAJ ZAWARTOŚĆ POLA TEKSTOWEGO
   
}

void gtrudny( GtkWidget * przycisk, gpointer dane )
{
   
    struct struktura * sss;
    sss =( struct struktura * ) dane;
    const gchar * tr = "true";
    const gchar * fa = "false";
   
    gtk_widget_hide( sss->graj );
    const gchar * zm[ 3 ] = { "1", "2", "3" };
    g_signal_connect( G_OBJECT( sss->wprowadz ), "clicked", G_CALLBACK( pobierz ), sss );
}
I po sprawie.
P-63977
czosnek17
Temat założony przez niniejszego użytkownika
» 2012-08-29 19:35:58
To niestety nie daje efektu.


P-63978
xevuel
» 2012-08-29 19:44:28
Czyli? co nie działa?
P-63979
czosnek17
Temat założony przez niniejszego użytkownika
» 2012-08-29 19:48:50
C/C++
if( sss->sprawdzdane == true )
     gtk_label_set_text( GTK_LABEL( sss->etykieta ), tr );
else
     gtk_label_set_text( GTK_LABEL( sss->etykieta ), fa );


To nie wyświetla tekstu. Chyba, że ja tu czegoś nie ogarniam..
P-63982
m4tx
» 2012-08-29 19:52:36
A jesteś pewien, że się w ogóle wykonuje? :)
P-63983
czosnek17
Temat założony przez niniejszego użytkownika
» 2012-08-29 19:54:50
A jesteś pewien, że się w ogóle wykonuje? :)
No właśnie się w ogóle nie wykonuje i w tym  problem :(
P-63984
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona