Estou aprendendo C ++ há cerca de um mês e, antes de prosseguir, gostaria de esclarecer essa pergunta tediosa que continuo tendo. Eu sei o que é uma GUI, mas realmente não sei como ela funciona, e talvez exemplos de populares?
Embora eu saiba que a programação da linha de comando é o básico, acho que seria divertido mexer com uma GUI.
Embora eu tenha cerca de 3 milhões de outras perguntas, eu as salvarei: D
Respostas:
Estou generalizando algumas bibliotecas da GUI, mas em um nível muito alto, o conceito mais importante que você precisa entender é que uma GUI é orientada a eventos .
Em um aplicativo de console, sua entrada do usuário geralmente acontece em determinados pontos que você definiu. Você solicita ao usuário, espera a entrada dele, calcula algo com base nessa entrada. Uma das principais diferenças é que a entrada acontece apenas em um lugar, você está lendo o texto da linha de comando (
stdin
em C ++).Em um aplicativo GUI, você normalmente possui vários locais onde a entrada pode ocorrer, por exemplo, botões que executam ações ou campos de texto diferentes. É aqui que os eventos entram em cena. Por exemplo, clicar em um botão aciona um evento. Esse evento precisa ser tratado por um manipulador de eventos , que geralmente é apenas um método que utiliza um objeto de evento e é chamado quando esse valor é acionado. Como seu botão sabe sobre o manipulador de eventos? Você geralmente assina (ou ouve ).
Aqui está um exemplo "inspirado em C ++", este não é um código QT ou C ++ real.
Ao criar o Button, você registra uma instância da classe MyClickHandler no botão.
Agora, toda vez que o botão
b
é clicado, uma caixa de mensagem aparece dizendo "O botão Salvar foi clicado".Você pode imaginar que um aplicativo GUI possui dois estágios:
Este é um exemplo muito simples, mas eu recomendo que, com qualquer estrutura que você escolher, tente mostrar uma caixa de mensagem quando um botão for clicado.
Para o framework, existem muitos por aí: No caso do C ++, eu provavelmente recomendaria o Qt.
Um último conselho: fique longe dos designers da GUI até saber o que está acontecendo em segundo plano. Não é tão difícil escrever alguns exemplos simples e entender primeiro o loop de eventos e depois passar para layouts mais complexos.
fonte
Agora é o melhor momento para aprender a representação gráfica da GUI. Como você conhece C ++, eu recomendaria olhar o QT. Ótima documentação, enorme base de usuários e muitos exemplos / tutoriais disponíveis para aprender.
fonte
Você também pode iniciar com o Microsoft Visual Studio C ++ Express . O IDE é muito amigável e fácil de usar (e gratuito!), E você poderá criar seus primeiros aplicativos GUI muito rapidamente ... O que o ajudará a se concentrar no entendimento dos conceitos básicos da programação orientada a eventos , uma abordagem diferente que você precisará dominar.
Você também pode começar diretamente com a criação de aplicativos controlados por WPF, mas eu começaria com o Windows Forms a princípio, que é uma tecnologia a menos, já que é apenas C ++ básico com a API do Windows Forms da Microsoft.
fonte
Talvez seja mais adequado ao StackOverflow, com a tag c ++; mas mesmo assim.
Veja alguns deles no google; Qt, WxWidgets, WinApi do TheForgers, Fltk ...
As GUIs não são tão difíceis de usar, especialmente quando você já conhece o c ++. Vá com WxWidgets eu acho; O Qt é um pouco complexo demais para o aprendizado de um mês. Você pode pegar o Wx em algumas horas.
fonte
Os usuários não gostam de coisas complicadas. O console é uma coisa complicada, é por isso que você precisa criar aplicativos GUI mais amigáveis e fáceis de entender. Esta é a razão mais óbvia que eu vejo. Você pode olhar para gtk ou Qt - esses dois são os mais populares.
fonte