1 gtk em c/c++ - 9º parte Dom Jun 16, 2013 1:53 pm
Moedas : 201
Mensagens : 92
Humor : *-*
Reputação : 5
Mensagens : 92
Humor : *-*
Reputação : 5
hacker fts315
bom galera essa e a 9º parte do tutorial, para começar ela fazemos uma janela simples u.u
no tuto anterior vimos o botao toggle q fica apertado ate apertar ele denovo, porem o uso do botao toggle e mais para aqueles botao q usa o proprio estado em uma condiçao sem precisar criar variaveis para armazenar essa determinado estado (um bom exemplo e um botao para acender e apagar a luz se ele tiver ativo ela vai apagar quando clicar e se ele nao tiver ele vai acender quando clicar), mais se uso do toggle for apenas para checar se esta ou nao ativo podemos usar o botao check, para usar o check usamos a funçao gtk_check_button_new_with_label passamos como argumento uma string e atribuimos essa funçao a um ponteiro do tipo GtkWidget, tambem adicionamos ele a janela
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
a desvantagem entre o toggle e o check, q no check teriamos q criar um outro botao para executar ou um evento, para agente saber se esta ativo ou nao basta usar a mesma funçao q usamos no toggle q seria o gtk_toogle_button_get_active
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
existe tambem os radio button q sao parecido com os check button a diferença q eles sao um todo os botoes sao interligado e se alternam entre si, para agente criar um radio button e mais complicado q check button pelo motivo da gente ter q interligar eles com uma GSList para começar vamos criar os ponteiros para os widgets no caso vou criar dois radio e a GSList (tambem vou criar um fixo para poder manipular os widgets)
agora vamos criar o radio button com a funçao gtk_radio_button_new_with_label passamos como argumento para o primeiro radio button NULL depois uma string
agora agente adiciona o radio button no GSList com a funçao gtk_radio_button_group, passamos como argumento o radio button e atribuimos ao GSList
nos outros radio button onde agente coloco NULL agente coloca a GSList, tambem temos q adicionar os demais radio button na lista
veja um exemplo mais completo
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
para agente saber se o radio button ta selecionado usamos a funçao gtk_toggle_button_get_active
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
bom galera 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 tuto anterior vimos o botao toggle q fica apertado ate apertar ele denovo, porem o uso do botao toggle e mais para aqueles botao q usa o proprio estado em uma condiçao sem precisar criar variaveis para armazenar essa determinado estado (um bom exemplo e um botao para acender e apagar a luz se ele tiver ativo ela vai apagar quando clicar e se ele nao tiver ele vai acender quando clicar), mais se uso do toggle for apenas para checar se esta ou nao ativo podemos usar o botao check, para usar o check usamos a funçao gtk_check_button_new_with_label passamos como argumento uma string e atribuimos essa funçao a um ponteiro do tipo GtkWidget, tambem adicionamos ele a janela
- Código:
#include <stdio.h>
#include <gtk/gtk.h>
int main(int argc, char **argv)
{
GtkWidget *janela, *check;
gtk_init(&argc,&argv);
janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
check = gtk_check_button_new_with_label("voce e maior de idade?");
gtk_container_add(GTK_CONTAINER(janela),check);
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]
a desvantagem entre o toggle e o check, q no check teriamos q criar um outro botao para executar ou um evento, para agente saber se esta ativo ou nao basta usar a mesma funçao q usamos no toggle q seria o gtk_toogle_button_get_active
- Código:
#include <stdio.h>
#include <gtk/gtk.h>
GtkWidget *check;
void fts_check(void)
{
GtkWidget *janela2, *label;
janela2 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check)))
{
label = gtk_label_new("voce e maior de idade");
}
else
{
label = gtk_label_new("voce e menor de idade");
}
gtk_container_add(GTK_CONTAINER(janela2),label);
gtk_widget_show_all(janela2);
}
int main(int argc, char **argv)
{
GtkWidget *janela, *fixo, *botao;
gtk_init(&argc,&argv);
janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
check = gtk_check_button_new_with_label("voce e maior de idade?");
botao = gtk_button_new_with_label("executar");
fixo = gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(janela),fixo);
gtk_fixed_put(GTK_FIXED(fixo),check,0,0);
gtk_fixed_put(GTK_FIXED(fixo),botao,60,30);
gtk_widget_show_all(janela);
g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
g_signal_connect(GTK_OBJECT(botao),"clicked",G_CALLBACK(fts_check),NULL);
gtk_main();
}
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
existe tambem os radio button q sao parecido com os check button a diferença q eles sao um todo os botoes sao interligado e se alternam entre si, para agente criar um radio button e mais complicado q check button pelo motivo da gente ter q interligar eles com uma GSList para começar vamos criar os ponteiros para os widgets no caso vou criar dois radio e a GSList (tambem vou criar um fixo para poder manipular os widgets)
- Código:
#include <stdio.h>
#include <gtk/gtk.h>
int main(int argc, char **argv)
{
GtkWidget *janela, *radio1, *radio2, *fixo;
GSList *lista;
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();
}
agora vamos criar o radio button com a funçao gtk_radio_button_new_with_label passamos como argumento para o primeiro radio button NULL depois uma string
- Código:
#include <stdio.h>
#include <gtk/gtk.h>
int main(int argc, char **argv)
{
GtkWidget *janela, *radio1, *radio2, *fixo;
GSList *lista;
gtk_init(&argc,&argv);
janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
radio1 = gtk_radio_button_new_with_label(NULL,"sim");
gtk_widget_show_all(janela);
g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
gtk_main();
}
agora agente adiciona o radio button no GSList com a funçao gtk_radio_button_group, passamos como argumento o radio button e atribuimos ao GSList
- Código:
#include <stdio.h>
#include <gtk/gtk.h>
int main(int argc, char **argv)
{
GtkWidget *janela, *radio1, *radio2, *fixo;
GSList *lista;
gtk_init(&argc,&argv);
janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
radio1 = gtk_radio_button_new_with_label(NULL,"sim");
lista = gtk_radio_button_group(GTK_RADIO_BUTTON(radio1));
gtk_widget_show_all(janela);
g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
gtk_main();
}
nos outros radio button onde agente coloco NULL agente coloca a GSList, tambem temos q adicionar os demais radio button na lista
- Código:
#include <stdio.h>
#include <gtk/gtk.h>
int main(int argc, char **argv)
{
GtkWidget *janela, *radio1, *radio2, *fixo;
GSList *lista;
gtk_init(&argc,&argv);
janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
radio1 = gtk_radio_button_new_with_label(NULL,"sim");
lista = gtk_radio_button_group(GTK_RADIO_BUTTON(radio1));
radio2 = gtk_radio_button_new_with_label(lista,"nao");
lista = gtk_radio_button_group(GTK_RADIO_BUTTON(radio2));
gtk_widget_show_all(janela);
g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
gtk_main();
}
veja um exemplo mais completo
- Código:
#include <stdio.h>
#include <gtk/gtk.h>
int main(int argc, char **argv)
{
GtkWidget *janela, *radio1, *radio2, *fixo;
GSList *lista;
gtk_init(&argc,&argv);
janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
radio1 = gtk_radio_button_new_with_label(NULL,"sim");
lista = gtk_radio_button_group(GTK_RADIO_BUTTON(radio1));
radio2 = gtk_radio_button_new_with_label(lista,"nao");
lista = gtk_radio_button_group(GTK_RADIO_BUTTON(radio2));
fixo = gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(janela),fixo);
gtk_fixed_put(GTK_FIXED(fixo),radio1,0,0);
gtk_fixed_put(GTK_FIXED(fixo),radio2,60,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 saber se o radio button ta selecionado usamos a funçao gtk_toggle_button_get_active
- Código:
#include <stdio.h>
#include <gtk/gtk.h>
GtkWidget *radio1, *radio2;
void fts_radio(void)
{
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio1)))
{
gtk_main_quit();
}
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio2)))
{
}
}
int main(int argc, char **argv)
{
GtkWidget *janela, *fixo, *botao;
GSList *lista;
gtk_init(&argc,&argv);
janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
radio1 = gtk_radio_button_new_with_label(NULL,"sim");
lista = gtk_radio_button_group(GTK_RADIO_BUTTON(radio1));
radio2 = gtk_radio_button_new_with_label(lista,"nao");
lista = gtk_radio_button_group(GTK_RADIO_BUTTON(radio2));
fixo = gtk_fixed_new();
botao = gtk_button_new_with_label("sair");
gtk_container_add(GTK_CONTAINER(janela),fixo);
gtk_fixed_put(GTK_FIXED(fixo),radio1,0,0);
gtk_fixed_put(GTK_FIXED(fixo),radio2,60,0);
gtk_fixed_put(GTK_FIXED(fixo),botao,40,30);
gtk_widget_show_all(janela);
g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
g_signal_connect(GTK_OBJECT(botao),"clicked",G_CALLBACK(fts_radio),NULL);
gtk_main();
}
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
bom galera ate o proximo ^^
by hacker fts315