Jump to content

Dúvida urgente em GTK+


Recommended Posts

Posted

Boa tarde,

Eu estou agora a começar a trabalhar em GTK+ em C, e gostava de criar uma janela de ajuda num programa parecida com esta.

http://img707.imageshack.us/img707/6418/94834672.png

E gostava que, quando o utilizador carregasse numa das mensagens, aparecesse a informação correspondente.

Mas não sei como é que posso fazer isto.

Se alguém pudesse ajudar agradecia.😉

Posted

Eu gostava de saber era como é que se faz isso sem usar o glade.

Porque isto é um trabalho para ser feito apenas em GTK+.

Se puderem dar uma pequena explicação ficaria muito grato. É que os tutoriais na net são muito incompletos e fazer isto sem qualquer tipo de ajuda para além dos tutoriais é muito dificil. ?

Posted

Obrigado.😉

A minha dúvida é precisamente essa. Como é que posso ligar uma função de callback aos sinais de OnClick dos elementos da lista ?

Não sei qual o código ou qual o nome do sinal que os elementos da lista emitem.

A minha função create_list está assim:

static GtkWidget *create_list( void )
{

    GtkWidget *scrolled_window;
    GtkWidget *tree_view;
    GtkListStore *model;
    GtkTreeIter iter;
    GtkCellRenderer *cell;
    GtkTreeViewColumn *column;

    int i;
   
    /* Create a new scrolled window, with scrollbars only if needed */
    scrolled_window = gtk_scrolled_window_new (NULL, NULL);
    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
			    GTK_POLICY_AUTOMATIC, 
			    GTK_POLICY_AUTOMATIC);
   
    model = gtk_list_store_new (1, G_TYPE_STRING);
    tree_view = gtk_tree_view_new ();
    gtk_container_add (GTK_CONTAINER (scrolled_window), tree_view);
    gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));
    gtk_widget_show (tree_view);
   
    /* Add some messages to the window */
    for (i = 0; i < 10; i++) {
        gchar *msg = g_strdup_printf ("Message #%d", i);
        gtk_list_store_append (GTK_LIST_STORE (model), &iter);
        gtk_list_store_set (GTK_LIST_STORE (model), 
                    &iter,
                            0, msg,
                    -1);
g_free (msg);
    }
   
    cell = gtk_cell_renderer_text_new ();

    column = gtk_tree_view_column_new_with_attributes ("Messages",
                                                       cell,
                                                       "text", 0,
                                                       NULL);
  
    gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),
  		         GTK_TREE_VIEW_COLUMN (column));

    return scrolled_window;
}

Alguém sabe fazê-lo?

Obrigado,

Verlet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.