Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

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


Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de GTK+

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90


© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 58 usuários muito felizes estudando em nosso site.