Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: GTK+ ::: Dicas & Truques ::: Formulários e Janelas

Como definir um ícone para a janela principal de sua aplicação GTK+

Quantidade de visualizações: 6554 vezes
Uma dúvida muito comum dos iniciantes na programação GTK+ é como definir um ícone para a janela principal da aplicação. Isso pode ser feito por meio da função gtk_window_set_icon() do objeto GtkWindow. Esta função recebe um ponteiro para a janela no qual o ícone será exibido e um ponteiro para um objeto GdkPixbuf, usado para guardar a imagem na memória. Note o uso de uma função personalizada para carregar a imagem a ser usada como ícone no objeto GdkPixbuf.

O ícone que definimos usando a função gtk_window_set_icon() é usado para representar a janela quando esta estiver minimizada. Alguns ambientes de desktop podem colocá-lo na barra de títulos da janela também. Este é o comportamento padrão esperado nos sistemas desktop modernos.

Veja uma aplicação GTK+ completa escrita em C e que usa um ícone chamado icone.png na janela principal. No exemplo o ícone foi disponibilizado na mesma pasta na qual o executável da aplicação está:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <gtk/gtk.h>

// protótipo da função que carrega o ícone
GdkPixbuf *carregar_icone(const gchar *);

// função personalizada usada para carregar o ícone a ser
// definido para a janela principal
GdkPixbuf *carregar_icone(const gchar *arquivo){
  GdkPixbuf *pixbuf;
  GError *erro = NULL;
  pixbuf = gdk_pixbuf_new_from_file(arquivo, &erro);

  if(!pixbuf){
    fprintf(stderr, "%s\n", erro->message);
  }

  return pixbuf;
}

int main(int argc, char *argv[]){
  // um ponteiro para um objeto GtkWidget
  GtkWidget *window;

  // inicializamos o GTK+ e as bibliotecas de suporte
  gtk_init(&argc, &argv);

  // vamos criar uma nova janela e definir seu título
  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title(GTK_WINDOW(window), "Estudos GTK+ com C");

  // vamos definir o ícone para a janela principal
  gtk_window_set_icon(GTK_WINDOW(window), carregar_icone("icone.png"));

  // exibimos a janela
  gtk_widget_show(window);

  // código que destrói a janela principal
  g_signal_connect_swapped(G_OBJECT(window), "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:

Vamos testar seus conhecimentos em

Características do concreto armado

Os domínios de deformação em concreto armado são categorias que descrevem diferentes estados de deformação do material em relação às tensões aplicadas. Cada domínio corresponde a um comportamento específico do material e pode ser usado para entender como o concreto e o aço de reforço interagem sob diferentes condições de carga.

Nesse sentido, assinale a alternativa que traz o domínio no qual as peças de concreto armado devem ser projetadas de modo a melhor aproveitar as resistências dos materiais.

A) Domínio 1.

B) Domínio 2.

C) Domínio 3.

D) Domínio 4.

E) Domínio 5.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

valor = 5
for i in range(0, 4):
  valor++
  
print("O valor final é: {0}  ".format(valor))

A) O valor final é: 8

B) O valor final é: 9

C) Erro de SyntaxError: invalid syntax na linha 3

D) O valor final é: 7

E) Erro de SyntaxError: invalid syntax na linha 2
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Densidade de um fluido

Um fluido encontra-se em um recipiente com volume de 300L. Sabendo que a massa desse fluido é de 2kg, qual a sua densidade em kg/m3?

A) 0,67kg/m3.

B) 6,67kg/m3.

C) 0,15kg/m3.

D) 150kg/m3.

E) 151,5kg/m3.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Resistência do concreto

Utilizando como base os critérios para avaliação da resistência à tração do concreto, expostos no item 8.2.5 da NBR 6118/2014 - Projeto de Estruturas de Concreto - Procedimento, na falta de ensaios específicos, determine qual seria a resistência característica à tração superior e inferior de um concreto com fck = 30 MPa.

A) fctk,inf = 1,8 MPa; fctk,sup = 3,3 MPa.

B) fctk,inf = 2 Mpa; fctk,sup = 3,8 MPa.

C) fctk,inf = 2,3 MPa; fctk,sup = 4,2 MPa.

D) fctk,inf = 2,5 MPa; fctk,sup = 4,6 MPa.

E) fctk,inf = 2,7 MPa; fctk,sup = 4,9 MPa.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Cisalhamento e detalhamento de vigas

A NBR 6118 (ABNT, 2014) determina que todos os elementos lineares submetidos à força cortante devem conter armadura transversal mínima (&#961;SW) constituída por estribos.

Nesse contexo, marque a alternativa correta:

A) O diâmetro da barra que constitui o estribo não pode exceder 20% da menor largura da viga.

B) O diâmetro da barra que constitui o estribo deve ser exatamente de 5mm ou menor.

C) Nos estribos em que as barras são lisas, o diâmetro não pode ser superior a 10mm.

D) O espaçamento máximo entre as barras transversais dos estribos não deve ser superior a 20cm.

E) O espaçamento mínimo adequado dos estribos deve ser aquele que permita a introdução do vibrador.
Verificar Resposta Estudar Cards Todas as Questões

Veja mais Dicas e truques de GTK+

Dicas e truques de outras linguagens

E-Books em PDF

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

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



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