Avatar ·

Qual é a API GUI nativa do Linux para C++? Qual é a diferença do WinAPI?

Olá a todos. Sou um desenvolvedor C++ iniciante, migrando do Windows para o Linux. No Windows, estou acostumado a escrever aplicativos de janela simples usando WinAPI — lá tudo é claro: você cria uma janela com CreateWindow, processa mensagens em um loop, desenha botões e campos de entrada. Tudo isso faz parte do próprio sistema operacional, sem necessidade de bibliotecas de terceiros. Agora estou no Ubuntu e quero escrever um programa simples em C++ — uma janela com alguns botões e um campo de texto. Mas estou confuso: o Linux não tem uma única "API nativa" para GUI, pelo que entendi. Falam sobre Xlib, GTK, Qt, mas não são a mesma coisa. Xlib é um protocolo de baixo nível para o X Window System, mas não fornece elementos de controle prontos (botões, campos de entrada). GTK e Qt são frameworks multiplataforma que não são "nativos" no sentido de não fazerem parte do kernel Linux. Pergunta: o que então deve ser considerado a API GUI nativa para o Linux? Existe um análogo direto do WinAPI? Se eu quiser escrever um programa em C++ puro sem dependências do GTK