Universal Pixel
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

gtk em c/c++ - 12º parte

2 participantes

Ir para baixo

gtk em c/c++ - 12º parte Empty gtk em c/c++ - 12º parte

Mensagem por Flavio315 Dom Jun 23, 2013 7:47 pm

bom galera 12º parte do tuto, vamos criar uma janela basica

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();
}

no tutorial anterior aprendemos a manipular a cor do widgets mais de uma maneira estatica ou seja o programa vai ter sempre aquele cor, se agente quiser q o proprio usuario mude a cor bastava criar um entry onde o usuario selecionava a cor desejada, mais manipular a cor por codigo ainda e chato podemos criar uma botao q mostra a cor e seus codigos, para criar esse botao usamos a funçao gtk_color_button_new tambem temos q atribuir ele a um ponteiro do tipo GtkWidget

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

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

gtk em c/c++ - 12º parte Uk93

para agente atribuir a cor para variavel GdkColor usamos a funçao gtk_color_button_get_color e passamos como argumento o botao depois o endereço de memoria da variavel GdkColor

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

int main(int argc, char **argv)
{
   GtkWidget *janela, *botao;
   GdkColor cor;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   botao = gtk_color_button_new();
   gtk_color_button_get_color(GTK_COLOR_BUTTON(botao),&cor);
   gtk_container_add(GTK_CONTAINER(janela),botao);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}

um exemplo mais completo

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

GtkWidget *botao;
GdkColor cor;

void fts_cor(void)
{
   gtk_color_button_get_color(GTK_COLOR_BUTTON(botao),&cor);
   g_print("vermelho 0x%x\n",cor.red);
   g_print("verde 0x%x\n",cor.green);
   g_print("azul 0x%x\n",cor.blue);
}

int main(int argc, char **argv)
{
   GtkWidget *janela, *fixo, *botao2;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   fixo = gtk_fixed_new();
   botao = gtk_color_button_new();
   botao2 = gtk_button_new_with_label("ver cor");
   gtk_container_add(GTK_CONTAINER(janela),fixo);
   gtk_fixed_put(GTK_FIXED(fixo),botao,0,0);
   gtk_fixed_put(GTK_FIXED(fixo),botao2,60,0);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   g_signal_connect(GTK_OBJECT(botao2),"clicked",G_CALLBACK(fts_cor),NULL);
   gtk_main();
}

gtk em c/c++ - 12º parte F7c2

tambem existe um widget de calendario, para criar ele usamos gtk_calendar_new, para criar ele basta atribuir a um ponteiro GtkWidget depois colocar ele na janela

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

int main(int argc, char **argv)
{
   GtkWidget *janela, *cal, *fixo;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   fixo = gtk_fixed_new();
   cal = gtk_calendar_new();
   gtk_container_add(GTK_CONTAINER(janela),fixo);
   gtk_fixed_put(GTK_FIXED(fixo),cal,0,0);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}

gtk em c/c++ - 12º parte B9w

para agente pegar a data que ta no calendario usamos a funçao gtk_calendar_get_date passamos como argumento o calendario, depois 3 endereço de memoria de variaveis gint q sera armazenada (ano, mes, dia)

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

int main(int argc, char **argv)
{
   GtkWidget *janela, *cal, *fixo;
   gint ano, mes, dia;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   fixo = gtk_fixed_new();
   cal = gtk_calendar_new();
   gtk_calendar_get_date(GTK_CALENDAR(cal),&ano,&mes,&dia);
   gtk_container_add(GTK_CONTAINER(janela),fixo);
   gtk_fixed_put(GTK_FIXED(fixo),cal,0,0);
   g_print("%d - %d - %d",dia,mes,ano);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}

para agente mudar o dia usamos a funçao gtk_calendar_select_day passamos como argumento o calendario e o dia

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

int main(int argc, char **argv)
{
   GtkWidget *janela, *cal, *fixo;
   gint ano, mes, dia;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   fixo = gtk_fixed_new();
   cal = gtk_calendar_new();
   gtk_calendar_select_day(GTK_CALENDAR(cal),1);
   gtk_container_add(GTK_CONTAINER(janela),fixo);
   gtk_fixed_put(GTK_FIXED(fixo),cal,0,0);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}

para mudar o mes e o ano usamos a funçao gtk_calendar_select_month passamos como argumento o calendario depois o mes e o ano (so lembrando q o mes começa na ordem 0)

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

int main(int argc, char **argv)
{
   GtkWidget *janela, *cal, *fixo;
   gint ano, mes, dia;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   fixo = gtk_fixed_new();
   cal = gtk_calendar_new();
   gtk_calendar_select_day(GTK_CALENDAR(cal),1);
   gtk_calendar_select_month(GTK_CALENDAR(cal),0,2100);
   gtk_container_add(GTK_CONTAINER(janela),fixo);
   gtk_fixed_put(GTK_FIXED(fixo),cal,0,0);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}

bom galera e isso ate o proximo

by hacker fts315
Flavio315
Flavio315
Moderapixel

Quebra de regras Quebra de regras :
gtk em c/c++ - 12º parte Left_bar_bleue0 / 1000 / 100gtk em c/c++ - 12º parte Right_bar_bleue

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

Ir para o topo Ir para baixo

gtk em c/c++ - 12º parte Empty Re: gtk em c/c++ - 12º parte

Mensagem por Pixel Seg Jun 24, 2013 4:05 pm

Tem as outras partes?
bom topico até mais.
Pixel
Pixel
Admin
Admin

Quebra de regras Quebra de regras :
gtk em c/c++ - 12º parte Left_bar_bleue0 / 1000 / 100gtk em c/c++ - 12º parte Right_bar_bleue

Masculino Mensagens Mensagens : 199
Pontos Pontos : 271
Reputação Reputação : 0
Data de inscrição Data de inscrição : 14/06/2013
Idade Idade : 31
Localização : CASA

http://universalpixel.forum-pro.net

Ir para o topo Ir para baixo

gtk em c/c++ - 12º parte Empty Re: gtk em c/c++ - 12º parte

Mensagem por Flavio315 Ter Jun 25, 2013 5:35 am

da 1º ate a 12º parte eu ja postei, a 13º ainda nao fiz nao =/
Flavio315
Flavio315
Moderapixel

Quebra de regras Quebra de regras :
gtk em c/c++ - 12º parte Left_bar_bleue0 / 1000 / 100gtk em c/c++ - 12º parte Right_bar_bleue

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

Ir para o topo Ir para baixo

gtk em c/c++ - 12º parte Empty Re: gtk em c/c++ - 12º parte

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos