在pygame中添加wxpython

her*_*y92 6 user-interface pygame wxpython

我正在寻找一种方法,可以将wxPython GUI元素添加到pygame中.如果有替代方法可以解决将GUI元素添加到pygame的目的,请提示.我在安装PGU时遇到问题.谢谢你的帮助.

ima*_*ett 4

没有; 您可以将 wxWidgets 添加到 PyGame。添加打开/保存对话框、按钮等很简单。有时,当您尝试共享区域时,它会变得很糟糕(如上所述,存在冲突的窗口系统),但这绝对是可行的。

以下是我几年前写的,所以很乱;但至少它很简单。它应该可以帮助您开始:

class SDLThread:
    def __init__(self,screen):
        self.m_bKeepGoing = self.m_bRunning = False
        self.screen = screen
        self.color = (255,0,0)
        self.rect = (10,10,100,100)
    def Start(self):
        self.m_bKeepGoing = self.m_bRunning = True
        thread.start_new_thread(self.Run, ())
    def Stop(self):
        self.m_bKeepGoing = False
    def IsRunning(self):
        return self.m_bRunning
    def Run(self):
        while self.m_bKeepGoing:
            pass
##            GetInput()
##            Draw()
        self.m_bRunning = False;
class SDLPanel(wx.Panel):
    def __init__(self,parent,ID,tplSize):
        global pygame
        wx.Panel.__init__(self, parent, ID, size=tplSize)
        self.Fit()
        os.environ['SDL_WINDOWID'] = str(self.GetHandle())
        os.environ['SDL_VIDEODRIVER'] = 'windib'
        import pygame
        pygame.init()
        icon = pygame.Surface((1,1));icon.set_alpha(0);pygame.display.set_icon(icon)
        global Surface
        Surface = pygame.display.set_mode(tplSize)
        self.thread = SDLThread(Surface)
        self.thread.Start()
    def __del__(self):
        self.thread.Stop()
Run Code Online (Sandbox Code Playgroud)