seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

Participe do fórum, é rápido e fácil

seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Você não está conectado. Conecte-se ou registre-se

[tutorial] gtk em c/c++ - 12º parte

Ir para baixo  Mensagem [Página 1 de 1]

1[tutorial] gtk em c/c++ - 12º parte Empty [tutorial] gtk em c/c++ - 12º parte Dom Jun 23, 2013 3:42 pm

Kodo no Kami

Kodo no Kami
master
master

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

[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

https://endoffile.umforum.net

Ir para o topo  Mensagem [Página 1 de 1]

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