gtk em c/c++ - 15º parte

Ir em baixo

gtk em c/c++ - 15º parte

Mensagem por Flavio315 em Qua Jul 03, 2013 7:51 pm

bom galera mais um tutorial de gtk em c/c++, para iniciar começamos ele fazendo uma janela basica XD

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   GtkWidget *janela;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}

nesse tutorial vamos aprender a criar uma barra de menu, para agente criar a barra de menu usamos a funçao gtk_menu_bar_new e atribuimos ela a ponteiro do tipo GtkWidget

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   GtkWidget *janela, *menu;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   menu = gtk_menu_bar_new();
   gtk_container_add(GTK_CONTAINER(janela),menu);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}

depois de criar a barra de menu agente tem q criar os itens dela, para criar um item usamos as funçoes gtk_item_new_with_label ou gtk_item_new_with_mnemonic e passamos como argumento uma string e depois atribumos a mesma para um outro ponteiro do tipo GtkWidget

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   GtkWidget *janela, *menu, *menu_item;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   menu = gtk_menu_bar_new();
   menu_item = gtk_menu_item_new_with_label("sair");
   gtk_container_add(GTK_CONTAINER(janela),menu);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}

agora so falta colocar o item dentro da barra de menu para isso usamos a funçao gtk_menu_bar_append e passamos como argumento o menu depois o item

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   GtkWidget *janela, *menu, *menu_item;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   menu = gtk_menu_bar_new();
   menu_item = gtk_menu_item_new_with_label("sair");
   gtk_menu_bar_append(GTK_MENU_BAR(menu),menu_item);
   gtk_container_add(GTK_CONTAINER(janela),menu);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}



agente pode usar o evento activate para saber se apertor no item

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   GtkWidget *janela, *menu, *menu_item;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   menu = gtk_menu_bar_new();
   menu_item = gtk_menu_item_new_with_label("sair");
   gtk_menu_bar_append(GTK_MENU_BAR(menu),menu_item);
   gtk_container_add(GTK_CONTAINER(janela),menu);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   g_signal_connect(GTK_OBJECT(menu_item),"activate",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}

mais um exemplo com varios itens

Código:
#include <stdio.h>
#include <gtk/gtk.h>

void fts(void)
{
   g_print("by hacker fts315\n");
}

int main(int argc, char **argv)
{
   GtkWidget *janela, *menu, *menu_item, *menu_item2;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   menu = gtk_menu_bar_new();
   menu_item = gtk_menu_item_new_with_label("sair");
   menu_item2 = gtk_menu_item_new_with_label("autor");
   gtk_menu_bar_append(GTK_MENU_BAR(menu),menu_item);
   gtk_menu_bar_append(GTK_MENU_BAR(menu),menu_item2);
   gtk_container_add(GTK_CONTAINER(janela),menu);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   g_signal_connect(GTK_OBJECT(menu_item),"activate",G_CALLBACK(gtk_main_quit),NULL);
   g_signal_connect(GTK_OBJECT(menu_item2),"activate",G_CALLBACK(fts),NULL);
   gtk_main();
}



bom galera e isso ate o proximo

by hacker fts315






Olá Caro usuario, olhe essas Dicas Importantes:
Respeite as [Você precisa estar registrado e conectado para ver este link.].
- [Você precisa estar registrado e conectado para ver este link.].
Fique atento a o [Você precisa estar registrado e conectado para ver este link.].
Veja os [Você precisa estar registrado e conectado para ver este link.] do fórum.
Não peça suporte por MP ou no Chat-Box.
avatar
Flavio315
Moderapixel

Quebra de regras Quebra de regras :
0 / 1000 / 100

Masculino Mensagens Mensagens : 54
Pontos Pontos : 146
Reputação Reputação : 0
Data de inscrição Data de inscrição : 19/06/2013
Localização : sub-mundo da informatica

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: gtk em c/c++ - 15º parte

Mensagem por SkyWalker-TIP em Qua Jul 03, 2013 8:10 pm

Belo tutorial Smile
Continue postando - # # # # # # # # # SKYWALKER # TIP






Sentimos sua falta Sad

        -Charlie Sheen (Ou melhor,Charlie harpe de Two And A Half Men (Dois homens e meio).



Angus T.Jones (Jake de Two And a half men) - Dois homens e meio .

avatar
SkyWalker-TIP
Membro


Quebra de regras Quebra de regras :
0 / 1000 / 100

Masculino Mensagens Mensagens : 24
Pontos Pontos : 52
Reputação Reputação : 0
Data de inscrição Data de inscrição : 20/06/2013
Idade Idade : 22
Localização : TIP

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum