Pergunta

Alguém poderia recomendar bons recursos para a criação de interfaces gráficas de usuário, de preferência em C/C++?

Atualmente minha maior influência é 3DBuzz. comde VTMs C++/OpenGL (Módulos de treinamento em vídeo).Embora sejam muito bons, eles cobrem uma grande área de programação gráfica, portanto, apenas superficialmente a programação GUI.

Esta questão está relacionada com "Como faço uma GUI?", onde também há um esboço da minha estrutura atual.

Qualquer resposta seria apreciada.

Editar:Acabei de ler algumas das respostas e percebi que perdi alguns pontos.Tive que digitar a pergunta duas vezes porque peguei o botão errado e o perdi.

Perdi dois pontos importantes, primeiro:Isso será usado em várias plataformas, incluindo homebrew em um Sony PSP.Segundo:Quero criar um sistema GUI e não usar um existente.

Editar 2: Acho que alguns de vocês estão perdendo o foco, não sei o que fazer usar um sistema GUI existente, quero construir um.

O Qt em sua forma atual não é portável para o PSP, não importa o exagero de tal tarefa.

Dito isto, decidi criar uma IM-GUI e comecei a prototipar o código.

Foi útil?

Solução

Eu não usaria OpenGL para a GUI, a menos que você esteja planejando efeitos acelerados por hardware e/ou 3D que você acha que não conseguiria com um kit de ferramentas de GUI mais tradicional (por exemplo Qt, wxWidgets, GTK, etc).Se você precisa apenas de uma GUI simples e rápida para hospedar seus gráficos OpenGL, então FLTK é uma boa escolha.Caso contrário, para renderizar a GUI diretamente no OpenGL, existem bibliotecas como GUI do Crazy Eddie que fazem exatamente isso e fornecem muitos espelável widgets que você não terá que reinventar.A janela e o contexto OpenGL poderiam então ser fornecidos com uma biblioteca portátil como SDL.

EDITAR:Agora que voltei e dei uma olhada no seu outra postagem Acho que entendi melhor o que você está perguntando.Para uma GUI em um sistema embarcado como o Nintendo DS, eu consideraria usar uma GUI de "modo imediato". Jari Komppa tem um bom tutorial sobre eles, mas você poderia usar uma abordagem mais orientada a objetos com C++ do que o código C que ele apresenta.

Outras dicas

http://www.fox-toolkit.org tem uma referência de API, se você quiser trabalhar com uma estrutura específica.Ou você estava mais interessado na teoria geral ou em algo mais parecido com como fazer as coisas de baixo nível sozinho?

Para obter mais informações sobre a GUI do "modo imediato", posso recomendar o Fóruns de Molly Rocket.Há um bom vídeo de apresentação do pensamento por trás do IM-GUI, juntamente com muita discussão.

Recentemente, criei um sistema IM-GUI muito rápido baseado na apresentação na página de Jari e, no meu caso, onde eu realmente só queria poder colocar alguns botões e caixas na tela, e mais ou menos apenas código rígido a resposta às entradas, realmente parecia a coisa certa a fazer, em vez de optar por uma arquitetura GUI mais completa.(Isso estava em um aplicativo DirectX, então o número de opções que eu tinha era bastante limitado).

Uma das maneiras mais rápidas é usar python com uma ligação GUI como pyQt, PyFLTK, tkinter, wxPython ou mesmo via pygame que usa SDL.

É fácil, rápido e independente de plataforma.Além disso, a gestão dos pacotes é imbatível.

Ver:

Para uma plataforma como o PSP, eu me preocuparia um pouco com o desempenho de uma solução IM GUI.Com um tipo de solução de modo retido tradicional, ao criar um controle, você também pode criar o buffer de vértice/lista de exibição ou o que for necessário para renderizá-lo.Com uma solução de modo imediato, parece-me que você precisaria recriar dinamicamente cada quadro.

Você pode não se importar com isso, se estiver fazendo apenas alguns botões, ou se não for usado no jogo (supondo que você esteja fazendo um jogo), mas, especialmente se você tiver bastante texto, o custo de renderização pode começar a doer se você não conseguir encontrar uma maneira de armazenar em cache as listas de exibição de alguma forma.

Dê uma olhada em Qt.É uma biblioteca de código aberto para criação de GUIs.Ao contrário do Swing em Java, ele pressupõe muitas coisas, por isso é muito fácil criar GUIs funcionais.Por exemplo, uma área de texto assume que você deseja um menu de contexto ao clicar com o botão direito do mouse, copiar, colar, selecionar tudo, etc.O documentação também é muito bom.

Vou segundo Qt.É multiplataforma e eu encontrei muito mais fácil de trabalhar do que o material GUI integrado do Visual Studio.Ele tem licença dupla, então se você não quiser que seu código seja GPL, você pode comprar uma licença.

Dei uma olhada no vídeo do Molley Rocket e olhei os tutoriais em cache de Jari Komppa.

Uma IM-GUI parece ser a melhor opção, acho que será muito mais simplificada e muito mais rápida de construir do que o sistema que eu originalmente tinha em mente.

Agora, um novo problema, só posso exceto uma resposta.:(

Obrigado novamente a Monjardin e dooz, felicidades.

coisa2k

eu daria uma olhada GLAMOUR e GLGooey

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top