Configuração de Ícones para Executáveis e Janelas no Qt

Quando se distribui uma aplicação Qt para Windows, o ícone exibido pelo Explorer e na barra de tarefas é o primeiro contato visual do usuário com o produto. Configurar corretamente esse ativo torna o executável reconhecível e transmite maior profissionalismo. A seguir, são apresentadas as formas de definir o ícone do .exe gerado e o ícone da janela, tanto no Qt Creator quanto no Visual Studio com as ferramentas Qt.

Ícone do executável no Qt Creator

No Qt Creator, existem duas abordagens principais: informar diretamente o arquivo .ico no projeto ou utilizar um arquivo de recursos do Windows (.rc).

Definindo o ícone via .pro

Essa é a maneira mais rápida. Basta adicionar a diretiva RC_ICONS no arquivo .pro, apontando para um ícone válido no formato ICO:

RC_ICONS = app_icon.ico

O arquivo app_icon.ico deve estar no mesmo diretório do .pro. Após salvar e executar o processo de build, o ícone será incorporado ao executável. É importante ressatlar que o arquivo deve ser um ICO genuíno; renomear uma imagem JPG ou PNG simplesmente mudando a extensão pode gerar erros de linkagem durante a compilação.

Utilizando um arquivo .rc

Para cenários em que é necessário combinar ícone com informações de versão ou outros recursos, o arquivo .rc é mais flexível. Crie um arquivo chamado recursos.rc com o seguinte conteúdo:

IDI_APP ICON "app_icon.ico"

Em seguida, inclua-o no .pro:

RC_FILE += recursos.rc

Como no método anterior, o arquivo ICO deve estar acessível no caminho indicado.

Ícone do executável no Visual Studio

Quando o projeto Qt é gerenciado pelo Visual Studio, o processo é feito através do editor de recursos nativo:

  1. Clique com o botão direito no projeto e selecione Add > Resource.
  2. Na caixa de diálogo, escolha Icon e clique em Import.
  3. Localize o arquivo .ico desejado e confirme.
  4. Recompile a solução. O executável resultante já usará o novo ícone.

Ícone da janela e da barra de tarefas

Configurar o ícone do executável não altera automaticamente o ícone exibido na barra de título e na barra de tarefas durante a execução. Para isso, é preciso definir o ícone da janela programaticamente:

#include <QApplication>
#include <QMainWindow>
#include <QIcon>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QIcon icone(":/imagens/logo.png");
    QMainWindow janela;
    janela.setWindowIcon(icone);
    janela.setWindowTitle("Minha Aplicação Qt");
    janela.show();

    return app.exec();
}

A chamada a setWindowIcon aplica o ícone tanto na barra de título quanto na barra de tarefas. Caso o recurso esteja no arquivo .qrc, utilize o prefixo qrc:/ para garantir que seja embutido no binário.

Estrutura do arquivo .rc

O arquivo de recursos do Windows permite descrever metadados além do ícone. Abaixo estão os elementos mais comuns.

Recurso ICON

A sintaxe básica é:

ID_RECURSO ICON "caminho/icone.ico"

O identificador pode ser uma palavra ou um número inteiro sem sinal de 16 bits. O caminho pode ser relativo ao diretório de build ou absoluto.

Recurso VERSIONINFO

O bloco VERSIONINFO descreev metadados do binário. A sintaxe pode ser:

VS_VERSION_INFO VERSIONINFO
    FILEVERSION 2,1,0,0
    PRODUCTVERSION 2,1,0,0
    FILEFLAGSMASK 0x3fL
    FILEFLAGS 0x0L
    FILEOS VOS_NT_WINDOWS32
    FILETYPE VFT_APP
    FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904B0"
        BEGIN
            VALUE "CompanyName", "Exemplo LTDA"
            VALUE "FileDescription", "Aplicação de Exemplo"
            VALUE "FileVersion", "2.1.0.0"
            VALUE "InternalName", "meuapp"
            VALUE "OriginalFilename", "meuapp.exe"
            VALUE "ProductName", "Minha Aplicação"
            VALUE "ProductVersion", "2.1.0.0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END

Os principais campos de fixed-info são:

  • FILEVERSION: versão binária do arquivo, composta por quatro números de 16 bits.
  • PRODUCTVERSION: versão do produto, no mesmo formato.
  • FILEFLAGSMASK: máscara que indica quais bits de FILEFLAGS são válidos.
  • FILEFLAGS: atributos do arquivo, como VS_FF_DEBUG ou VS_FF_PRERELEASE.
  • FILEOS: sistema operacional alvo, por exemplo VOS_NT_WINDOWS32.
  • FILETYPE: tipo do arquivo, como VFT_APP para aplicações.
  • FILESUBTYPE: subtipo funcional, quando aplicável.

Com o VERSIONINFO declarado no .rc e referenciado no .pro, o executável final exibirá as informações de versão nas propriedades do arquivo no Windows Explorer.

Tags: Qt Qt Creator Visual Studio Windows .ico

Publicado em 7-14 10:47