Até agora, todos os meus programas em C ++ usam a interface da linha de comandos e a única outra linguagem com a qual tenho experiência é o PHP, que não suporta GUIs.
Por onde começo com a programação da interface gráfica do usuário em C ++? Como crio um?
c++
user-interface
waiwai933
fonte
fonte
Respostas:
Essencialmente, o sistema de janelas de um sistema operacional expõe algumas chamadas de API que você pode executar para executar tarefas como criar uma janela ou colocar um botão na janela. Basicamente, você obtém um conjunto de arquivos de cabeçalho e pode chamar funções nessas bibliotecas importadas, como faria com stdlib e
printf
.Cada sistema operacional vem com seu próprio kit de ferramentas da GUI, conjunto de arquivos de cabeçalho e chamadas de API, e sua própria maneira de fazer as coisas. Também existem kits de ferramentas de plataforma cruzada, como GTK , Qt e wxWidgets, que ajudam a criar programas que funcionam em qualquer lugar. Eles conseguem isso tendo as mesmas chamadas de API em cada plataforma, mas uma implementação diferente para as funções de API que chamam as chamadas de API do SO nativo.
Uma coisa que todos eles têm em comum, que será diferente de um programa CLI, é algo chamado loop de evento. A idéia básica é um pouco complicada e difícil de compactar, mas, em essência, significa que não há muita coisa acontecendo na sua classe principal / função principal, exceto:
Existem muitos recursos sobre programação baseada em eventos. Se você tem alguma experiência com JavaScript, é a mesma ideia básica, exceto que você, o scripter, não tem acesso ou controle sobre o próprio loop de eventos ou sobre quais eventos existem, seu único trabalho é escrever e registrar manipuladores.
Você deve ter em mente que a programação da GUI é incrivelmente complicada e difícil, em geral. Se você tiver a opção, é realmente muito mais fácil integrar um servidor da Web incorporado ao seu programa e ter uma interface baseada em HTML / Web. A única exceção que encontrei são os tutoriais do construtor de interfaces Cocoa + Xcode + da Apple, que o tornam facilmente o ambiente mais acessível para pessoas novas na programação de GUI que eu já vi.
fonte
Existem muitas bibliotecas de GUI portáteis gratuitas , cada uma com seus próprios pontos fortes e fracos:
Especialmente o Qt possui bons tutoriais e ferramentas que ajudam você a começar. Aproveitar!
Observe, no entanto, que você deve evitar funcionalidades específicas da plataforma , como a API do Win32 ou o MFC. Isso o vincula desnecessariamente a uma plataforma específica, quase sem benefícios.
fonte
Algoritmo independente do SO " Criando aplicativos GUI em C ++ em três etapas ":
Instale o Qt Creator
Criar novo projeto (aplicativo Qt Widgets)
Construa.
Parabéns, você conseguiu sua primeira GUI em C ++.
Agora você está pronto para ler muita documentação para criar algo mais complicado do que o aplicativo GUI "Hello world".
fonte
Dado o comentário de "diga o Windows XP como exemplo", suas opções são:
Interaja diretamente com o sistema operacional por meio de sua API, que para o Microsoft Windows é uma surpresa chamada chamada API do Windows . A referência definitiva para o WinAPI é o site MSDN da Microsoft . Um popular tutorial para iniciantes on-line é o Tutorial de programação da API Win32 do the Forger . O livro clássico para isso é o Windows de programação de Charles Petzold , 5ª edição .
Use uma biblioteca específica da plataforma (em termos de SO e compilador), como o MFC , que agrupa a WinAPI na classe C ++. A referência para isso é novamente MSDN. Um livro clássico para isso é o Windows de programação de Jeff Prosise com MFC, 2ª edição . Se você estiver usando o CodeGear C ++ Builder, a opção aqui é VCL .
Use uma biblioteca de plataforma cruzada, como GTK + (wrapper C ++: gtkmm ), Qt , wxWidgets ou FLTKque envolvem a API do sistema operacional específico. As vantagens disso são que, em geral, seu programa pode ser compilado para diferentes sistemas operacionais sem precisar alterar os códigos-fonte. Como já foi mencionado, cada um tem suas próprias forças e fraquezas. Uma consideração ao selecionar qual usar é sua licença. Para os exemplos dados, GTK + & gtkmm é licença sob LGPL, Qt está sob várias licenças, incluindo opção proprietária, wxWidgets está sob sua própria licença wxWindows (com uma renomeação para licença wxWidgets) e FLTK está sob LGPL com exceção. Para referência, tutorial e / ou livros, consulte o site de cada um para obter detalhes.
fonte
Desde que eu já estive onde você está agora, acho que posso "responder" a você.
O fato é que não há uma maneira fácil de criar uma GUI. As GUIs são altamente dependentes da plataforma e do código específico do SO, é por isso que você deve começar a ler a documentação da plataforma / SO de destino nas APIs de gerenciamento de janelas. A coisa boa é: existem muitas bibliotecas que tratam dessas limitações e diferenças de arquitetura abstrata em uma única API de várias plataformas. Os sugeridos anteriormente, GTK e Qt, são algumas dessas bibliotecas.
Mas mesmo estes são um pouco demasiado complicado, já que muitos novos conceitos, tipos de dados, namespaces e classes são introduzidos, de uma só vez. Por esse motivo, eles costumam ser fornecidos com algum editor da GUI WYSIWYG. Eles praticamente tornam possível o software de programação com GUIs.
Para resumir, também existem "ambientes" não livres para o desenvolvimento de GUI, como o Visual Studio da Microsoft. Para aqueles com experiência em Delphi , o Visual Studio pode ser mais familiar. Também existem alternativas gratuitas para o ambiente completo do Visual Studio fornecido pela Microsoft: Visual Studio Express , que é mais do que suficiente para iniciar o desenvolvimento da GUI.
fonte
Encontrei um site com um tutorial "simples": http://www.winprog.org/tutorial/start.html
fonte
É fácil criar uma GUI do Windows .NET em C ++.
Consulte o seguinte tutorial do MSDN . Você pode baixar tudo o que precisa (Visual C ++ Express) gratuitamente .
É claro que você se liga ao .NET, mas se estiver apenas brincando ou precisando de um aplicativo Windows, ficará bem (a maioria das pessoas ainda tem o Windows ... por enquanto).
fonte
Eu uso o FLTK porque o Qt não é gratuito. Não escolho wxWidgets , porque meu primeiro teste com um simples Olá, Mundo! programa produziu um executável de 24 MB, FLTK 0,8 MB ...
fonte