bom galera 12º parte do tuto, vamos criar uma janela basica
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
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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
um exemplo mais completo
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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)
para agente mudar o dia usamos a funçao gtk_calendar_select_day passamos como argumento o calendario e o dia
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)
bom galera e isso ate o proximo
by hacker fts315
- 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();
}
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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();
}
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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();
}
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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