Você está aqui: GTK+ ::: Gerenciadores de Layout ::: GtkFixed |
Entendendo o gerenciador de layout GtkFixed do GTK+Quantidade de visualizações: 6335 vezes |
O gerenciador de layout GtkFixed é um container que nos permite posicionar os controles da aplicação em posições fixas e com tamanhos pré-definidos. Tudo isso definido em pixels. Ao fazermos isso, temos a certeza de que os controles não serão reposicionados, como acontece com outros gerenciadores de layout. Embora tentador, o uso deste gerenciador deve ser evitado a maior parte do tempo. Particularmente eu o uso apenas para protótipos ou janelas cuja disposição dos elementos será temporária. O uso do gerenciador de layout GtkFixed traz várias desvantagens, entre elas podemos citar a imcompatibilidade com temas, visto que estes alteram os tamanhos dos componentes da janela. Além disso, há o problema com as fontes. Situações nas quais a fonte usado durante o desenvolvimento da aplicação não está disponível na máquina do usuário é muito mais frequente que pensamos. E, ao aplicar uma fonte diferente e, talvez, com tamanho diferente, um layout fixo não ficará nada atrativo. Um gerenciador de layout GtkFixed pode ser criado da seguinte forma: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- GtkWidget *layout = gtk_fixed_new(); Para adicionar um controle a um gerenciador GtkFixed podemos usar a seguinte função: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- gtk_fixed_put(GtkFixed *fixed, GtkWidget *widget, gint x, gint y); Aqui *fixed é um ponteiro para o gerenciador de layout, *widget é um ponteiro para para o controle que está sendo adicionado e x e y são as posições horizontais e verticais. Veja uma linha de código usada para posicionar uma caixa de texto GtkEntry com o nome de txt: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- gtk_fixed_put(GTK_FIXED(layout), txt, 10, 10); Veja agora um código completo para uma aplicação que usa o gerenciador de layout GtkFixed: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <gtk/gtk.h> int main(int argc, char *argv[]){ // inicializamos o GTK+ e as bibliotecas de suporte gtk_init(&argc, &argv); // vamos criar uma nova janela e definir seu título GtkWidget *janela = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(janela), "Estudos GTK+ com C"); // vamos definir a largura e altura da janela gtk_window_set_default_size(GTK_WINDOW(janela), 400, 200); // vamos usar o gerenciador de layout GtkFixed GtkWidget *layout = gtk_fixed_new(); // vamos criar uma caixa de texto GtkEntry GtkWidget *txt = gtk_entry_new(); // vamos definir a largura e altura da caixa de texto gtk_widget_set_size_request(txt, 150, 30); // vamos criar um botão GtkButton GtkWidget *btn = gtk_button_new_with_label("OK"); // vamos definir a largura e altura do botão gtk_widget_set_size_request(btn, 80, 30); // adicionamos os controles ao layout gtk_fixed_put(GTK_FIXED(layout), txt, 10, 10); gtk_fixed_put(GTK_FIXED(layout), btn, 165, 10); // adicionamos o GtkFixed à janela principal gtk_container_add(GTK_CONTAINER(janela), layout); // exibimos a janela e seus componentes gtk_widget_show_all(janela); // código que destrói a janela principal g_signal_connect_swapped(G_OBJECT(janela), "destroy", G_CALLBACK(gtk_main_quit), NULL); // entramos no loop principal do GTK+ gtk_main(); // a aplicação GTK+ foi fechada, vamos sair return 0; } |
![]() |
Veja mais Dicas e truques de GTK+ |
Dicas e truques de outras linguagens |
Java - Como retornar a hora atual em Java usando um objeto da classe Calendar - Datas e Horas em Java Python - Como calcular o limite de uma função usando Python e a biblioteca Sympy - Python para Engenharia |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |