Jump to content

Dúvida urgente em GTK+


Verlet

Recommended Posts

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.😉

Link to comment
Share on other sites

http://library.gnome.org/devel/gtk/unstable/GtkHBox.html

http://library.gnome.org/devel/gtk/unstable/GtkListStore.html

Acho que só precisas desses dois widgets. Depois é uma questão de ligares aos respectivos sinais de OnClick dos elementos da lista e alterar o conteúdo do outro lado, dependendo do item que foi clicado.

<3 life

Link to comment
Share on other 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

Link to comment
Share on other sites

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.