pygame dentro de uma aplicação pyGTK

votos
8

Qual é a melhor maneira de usar PyGame (SDL) dentro de um aplicativo de PyGTK?

Estou à procura de um método que me permite ter uma área de desenho na janela do GTK e ao mesmo tempo ser capaz de gerenciar ambos os eventos GTK e SDL.

Publicado 25/08/2008 em 05:36
fonte usuário
Em outras línguas...                            


7 respostas

votos
7

Eu nunca tentou isso sozinho, mas ouvir muito sobre outras pessoas que tentaram, não é um caminho que você quer ir para baixo.

Há a alternativa de colocar o gui em si pygame. Há uma abundância de kits de ferramentas gui construídos especificamente para pygame que você poderia usar. A maioria deles são bastante inacabado, mas há 2 grande, queridos ativamente mantidos: PGU e OcempGUI . A lista completa no site pygame é aqui .

Respondeu 26/08/2008 em 20:36
fonte usuário

votos
1

http://faq.pygtk.org/index.py?file=faq23.042.htp&req=show menciona tudo:

Você precisa criar uma área de desenho e definir o SDL_WINDOWID variável de ambiente depois que percebeu:

 import os

 gobject importação
 gtk importação
 pygame importação

 WINX = 400
 WINY = 200

 janela = gtk.Window ()
 window.connect ( 'delete-event', Gtk.main_quit)
 window.set_resizable (False)
 = área gtk.DrawingArea ()
 area.set_app_paintable (True)
 area.set_size_request (WINX, WINY)
 window.add (área)
 area.realize ()

 # Força SDL para escrever sobre a nossa área de desenho
 os.putenv ( 'SDL_WINDOWID', str (area.window.xid))

 # Precisamos liberar o ciclo de eventos xlib caso contrário não podemos
 # Acesso a XWindow que set_mode () requer
 gtk.gdk.flush ()

 pygame.init ()
 pygame.display.set_mode ((WINX, WINY), 0, 0)
 tela = pygame.display.get_surface ()

 image_surface = pygame.image.load ( 'foo.png')
 screen.blit (image_surface, (0, 0))

 gobject.idle_add (pygame.display.update)

 window.show_all ()

 enquanto gtk.event_pending ():
     # Pygame processamento de eventos / SDL vai aqui
     gtk.main_iteration (False)
Respondeu 04/12/2008 em 18:52
fonte usuário

votos
1

PyGame funciona muito melhor quando ele pode gerenciar sua própria janela, ou melhor ainda, usar a tela inteira. GTK tem os widgets suficientemente flexível para permitir a criação de uma área de desenho.

Esta página pode ajudar, porém, se você quiser experimentá-lo.

Respondeu 28/08/2008 em 11:04
fonte usuário

votos
1

Você pode estar interessado em esta discussão mensagem . Parece que eles recomendam contra ele.

Respondeu 25/08/2008 em 09:08
fonte usuário

votos
0

O projeto de Açúcar tem várias atividades construídos com PyGTK e PyGame.

Eles escreveram um lib apoio para conseguir isso, chamado Sugargame . Você deve ser capaz de modificá-lo para aplicativos PyGTK regulares em vez de açúcar.

Aqui está um capítulo no livro de desenvolvimento do Sugar sobre como usá-lo.

O lib permite comunicar eventos entre GTK e PyGame.

Apreciar!

Respondeu 08/11/2013 em 14:51
fonte usuário

votos
0

Não há uma solução simples que pode funcionar para você.

Escrever as coisas PyGTK e coisas PyGame como aplicativos separados. Em seguida, a partir da aplicação PyGTK chamar o aplicativo PyGame, usando os.system para chamar a aplicação PyGame. Se você precisar compartilhar dados entre os dois, em seguida, usar um banco de dados, tubos ou IPC.

Respondeu 13/10/2008 em 23:38
fonte usuário

votos
0

Eu tentei fazer isso mesmo há um tempo atrás, e eu nunca tenho que trabalhar perfeitamente. Na verdade eu nunca consegui-lo para trabalhar em conjunto com o Windows, já que ficava travando o sistema operacional inteiro e eu corri para fora de paciência. Eu continuei a usá-lo embora como foi importante apenas correu em Linux, e foi apenas um pequeno projeto. Eu recomendo fortemente que você investigar alternativas. Ele sempre me senti como um hack desagradável, e me fez sentir sujo.

Respondeu 17/09/2008 em 23:45
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more