Respostas:
Não. Todos os anos, alguém cria uma nova biblioteca de interface do usuário do Pygame e a abandona após algumas versões, provavelmente depois que percebe que escrever layouts de botões é fácil, mas escrever uma biblioteca da interface do usuário completa é um trabalho real. A gui
tag no site do Pygame mostra algumas delas.
Em janeiro de 2011, observei cinco kits de ferramentas da GUI para pygame e tentei trabalhar com todos eles com o Python 3. Os cinco eram: Albow, GooeyPy, PGU, pqGUI e sgc.
Não tive sucesso com o GooeyPy , mas consegui que os outros quatro trabalhassem com o Python 3. (eu também queria experimentar a poutine, de Shandy Brown, mas não consegui encontrá-la e ignorei completamente a Ocemp.)
Infelizmente, Albow e Ocemp parecem praticamente mortos. O Albow foi atualizado pela última vez em 2009 e o Ocemp foi atualizado pela última vez em 2008. (Observe que a versão do Albow em pygame.org não é a mais recente.)
O PGU (Phil's Pygame Utilities) foi assumido e mantido por Peter Rogers, e Victor Kam converteu a maior parte para o Python 3. Ele foi atualizado pela última vez em janeiro de 2012 e, presumivelmente, foi aprimorado desde que o examinei. (Observe que a versão do PGU em pygame.org não é a mais recente.)
sgc era novo e ainda muito incompleto quando olhei para ele. No entanto, ele está sendo desenvolvido ativamente e pode ser muito melhorado até agora. (Observe que a versão do sgc em pygame.org não é a mais recente.)
Executei cada um dos cinco através de um simples contador de linhas de código para medir seus tamanhos:
Estes foram os resultados (em janeiro de 2011):
Código do albow min = 2810, max = 4551 (max = 162% do min) Cotovelo \ demo min = 453, max = 649 GooeyPy \ gooeypy min = 2034, max = 3941 (max = 194% do min) GooeyPy \ exemplos min = 178, max = 351 pgu \ pgu min = 2910, max = 7047 (max = 242% do min) incl. pgu \ pgu \ gui min = 1678, max = 4638 (max = 276% do min) pgu \ exemplos min = 822, max = 2527 pqGUI.py min = 1586, máx = 1834 (máx = 116% do min) Exemplo.py min = 178, max = 225 sgc (incompleto) min = 889, máx = 1243 (máx = 140% do min)
Em cada caso, o número "min" é mais representativo do "tamanho" do kit de ferramentas, pois não conta com espaço em branco e comentários. Quando o número "max" está muito próximo do número mínimo, significa que não há muito espaço em branco nem muitos comentários no código. O pqGUI exemplifica isso, porque quase não possui comentários (e também nenhuma documentação), o que é muito ruim, porque (IMO) criou os elementos da GUI mais bonitos.
Advertência principal: as doutrinas não são contadas como comentários! Isso faz com que o PGU, sgc e GooeyPy, que possuem docstrings, pareçam mais gordos e menos documentados do que realmente são, em comparação com o Albow e o pqGUI, que não possuem docstrings.
Gostei do pqGUI porque gostei da aparência dos widgets que ele faz, mas não é suportado e não está documentado, e não consegui encontrar o autor.
Dos cinco, em janeiro de 2011, o PGU era o líder claro. Mas eu estava insatisfeito com os cinco, então escrevi o meu. (Nota: PGU e sgc foram atualizados e, presumivelmente, aprimorados, desde que os examinei.)
Pela observação irônica de Joe Wreschnig (acima), meu kit de ferramentas da GUI está incompleto, como todos os outros. Mas tem algumas coisas a seu favor.
No entanto, faltam alguns controles importantes que você provavelmente deseja, como caixas de diálogo para abrir arquivos / caixas de combinação e tabelas. Os controles existentes parecem bons, mas recursos como barras de título e barras de rolagem são números fixos de pixels em largura, em vez de largura ajustável. O código é bem comentado e há um aplicativo de demonstração com exemplos de uso, mas não há documentação adequada sobre como usar. Além disso, é pré-beta, então tudo está sujeito a alterações.
Os resultados do contador de linha de código são:
DavesGUI (com código de demonstração) min = 2267, max = 3055 (max = 135% do min) (sem código de demonstração) min = 2018, máx = 2644 (máx = 131% do min) (com doutrinas comentadas) min = 1442, máx = 2644 (máx = 183% do min)
Se, apesar dessas limitações, alguém quiser experimentar, entre em contato comigo por e-mail. Pergunte sobre "DavesGUI". Meu endereço de e-mail está aqui: http://www.burtonsys.com/email/
Vi recentemente o pygtk usado com o pygame e funciona muito bem. Apenas certifique-se de usar o evento expor com o widget da área de desenho gtk e atualize os dados do pygame em cada passagem no loop principal do gtk. Se você deseja que um kit completo de ferramentas da GUI funcione no pygame, isso não acontecerá, mas se você deseja que um kit completo de ferramentas da GUI use com o pygame, então está com sorte, o pygtk é isso. Você pode até usar o gtk usando a linguagem de programação C e ainda importar o pygame como um widget para a área de desenho e atualizar o pygame em python se isso flutuar no seu barco e você desejar velocidade turbo. Por que a confusão, basta usar o google e encontrar a resposta, em seguida, implementá-lo, não é difícil e não é nada demais. Aliás pygame é muito legal. Esses caras colocaram tanto trabalho nisso, e ele funciona com tanta eficiência que é incrível.
Adicionei elementos GUI muito básicos à minha biblioteca GameEngine: http://aharrisbooks.net/pythonGame/ch10/ (incluído em um livro sobre desenvolvimento de jogos em Python)
Criei elementos GUI muito simples com base no sprite padrão: um rótulo, botão, rótulo de várias linhas e mini-barra de rolagem.
Essas ferramentas são bastante básicas, mas são adequadas para muitos usos. Obviamente, a biblioteca é completamente de código aberto, portanto, fique à vontade para modificá-las, se desejar. O único elemento da interface do usuário que eu não adicionei (ainda) foi um widget de entrada de texto. Isso porque o modelo de evento é muito mais complexo para isso do que os outros modelos, e eu estava cumprindo um prazo.
Sinta-se à vontade para brincar com isso (se você usa o livro ou não) e me avise se tiver algum problema. Vou tentar ajudar.
Tenho vídeos do meu curso disponíveis em http://synapse.cs.iupui.edu/Mediasite/Catalog/
Veja o curso N451. Esse é o desenvolvimento de jogos.
O código de verão do Google adicionou uma nova GUI: http://blog.sambull.org/pygame-gui-0-2