• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Verlet

Dúvida urgente em GTK+

6 mensagens neste tópico

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.

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.;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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. :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora