Bem vindo ao LifeGames Demo
Cadastre-se agora para ter acesso a todos os nossos recursos. Uma vez cadastrado e logado, você será capaz de criar tópicos, postar respostas a tópicos já existentes, a reputação de seus companheiros, começar seu próprio mensageiro privado, atualizações de status post, gerir o seu perfil e muito mais. Esta mensagem será removida assim que tiver logado.
Entrar Cadastre-se


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

gtk em c/c++ - 7º parte

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 gtk em c/c++ - 7º parte em Qui Jun 13, 2013 12:14 am

Moedas Moedas : 201
Mensagens Mensagens : 92
Humor Humor : *-*
Reputação Reputação : 5
Quebra de regras:
0 / 1000 / 100

avatar

hacker fts315

Moderador Informática

Moderador Informática

bom galera essa e a 7º parte do tutorial, e como os outros vamos criar uma janela simples kkkk

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


para agente criar outra janela basta instanciar outra funçao gtk_window_new, tambem temos q atribuir ela a um ponteiro do tipo GtkWidget e chamar ela com a funçao gtk_widget_show ou gtk_widget_show_all, possivelmente a segunda janela vai ser  apenas temporaria e a primeira vai ser a janela principal do programa entao nao e necessario colocar um evento para finalizar ela caso ela seja fechada

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

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



[Você precisa estar registrado e conectado para ver esta imagem.]

existe uma outra janela alem do toplevel ela e o popup esse tipo de janela fica por cima de todas e nao tem botao de minimizar, maximizar mover e finalizar elas sao usadas mais para alertas, para usar ela basta definir GTK_WINDOW_POPUP no lugar do outro

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

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


[Você precisa estar registrado e conectado para ver esta imagem.]

para colocar uma janela em tela cheia (fullscreen) usamos a funçao gtk_window_fullscreen e passamos como argumento a janela

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);
   gtk_window_fullscreen(GTK_WINDOW(janela));
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}


[Você precisa estar registrado e conectado para ver esta imagem.]

podemos usar a funçao gtk_window_unfullscreen para voltar normal nela passamos como argumento a janela

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

GtkWidget *janela;

void fts_telacheia(void)
{
   gtk_window_fullscreen (GTK_WINDOW(janela));
}

void fts_telanormal(void)
{
   gtk_window_unfullscreen (GTK_WINDOW(janela));
}

int main(int argc, char **argv)
{   
   GtkWidget  *fixo, *botao, *botao2;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   fixo = gtk_fixed_new();
   botao = gtk_button_new_with_label("tela cheia");
   botao2 = gtk_button_new_with_label("tela normal");
   gtk_container_add(GTK_CONTAINER(janela),fixo);
   gtk_fixed_put(GTK_FIXED(fixo),botao,0,0);
   gtk_fixed_put(GTK_FIXED(fixo),botao2,100,0);
   gtk_widget_show_all(janela);
   g_signal_connect(GTK_OBJECT(botao),"clicked",G_CALLBACK(fts_telacheia),NULL);
   g_signal_connect(GTK_OBJECT(botao2),"clicked",G_CALLBACK(fts_telanormal),NULL);
   g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   gtk_main();
}


[Você precisa estar registrado e conectado para ver esta imagem.]

bom galera por enquanto e isso, ate o proximo ^^

by hacker fts315



[center][Você precisa estar registrado e conectado para ver esta imagem.]


Contato:
Facebook: /hacker.fts315
Ask: /hfts315
Ver perfil do usuário http://www.facebook.com/hacker.fts315

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

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