代码之家  ›  专栏  ›  技术社区  ›  nmichaels

Pygame应该使用什么gui工具包?[关闭]

  •  12
  • nmichaels  · 技术社区  · 14 年前

    This 问题不是我想要的,因为wxPython绕着SDL表面转,而不是在它里面。到目前为止我只看到 ocemp , pgu ,和 GooeyPy

    • Ocemp又大又粗糙。它提到了python2.3,我在快速浏览cvsrepo时发现的最新文件是2年前的。
    • 我无法让GooeyPy工作(虽然我没有很努力;eggs和Debian不是朋友),v0.2最后一次更新是在2009年2月。
    • 我一直在使用pgu,但它似乎没有得到维护(上一次更新是在2009年11月,最初的维护人员放弃了它),它开始显示出它的年龄。它使用旧式类并抛出字符串异常。

    2011年9月编辑

    6 回复  |  直到 7 年前
        1
  •  2
  •   Wayne Werner    14 年前

    我不知道任何pygamegui的东西,但它应该不是很难推出自己的(嘿,也许让它开源!)

    1. 获取鼠标位置
    2. 是否将鼠标放在任何按钮上(并且没有按下任何按钮)?
    3. 显示悬停图像
    4. 鼠标放在一个按钮上,然后单击一个鼠标按钮?
    5. 与该按钮相关的火灾事件
    6. 见1

    这有点简单,但至少应该给您一个起点(如果没有其他人有任何pygame GUI库的话)

        2
  •  2
  •   milleja46    12 年前

        3
  •  1
  •   repecmps repecmps    13 年前
        4
  •  1
  •   Community Egal    7 年前

    另请参见以下答案: What's the best way to add a GUI to a Pygame application?

    特别是,如果有人想使用DavesGUI,我的PyGame测试前GUI工具包,请给我发一封电子邮件。我的电子邮件地址在后面有一个链接 my reply, there .

        5
  •  0
  •   MetaHerobrine 1    8 年前

    def gui(x1, y1, x2, y2, button):
        mouseX, mouseY = pygame.mouse.get_pos()
        if mouseX >= x1 and mouseX <= x2 and mouseY >= y1 and mouseY <= y2:
            if button:
                return True
            else:
                return False
        else:
            return False
    

    您可以这样调用函数(我以菜单为例)。

    topCornerX = #X coordinate of top right corner
    topCornerY = #Y coordinate of top right corner
    bottomCornerX = #X coordinate of bottom left corner
    bottomCornerY = #Y coordinate of bottom left corner
    
    while menu:
        for event in pygame.event.get():
            mouseLeft, mouseMiddle, mouseRight = pygame.mouse.get_pressed()
            if gui(topCornerX, topCornerY, bottomCornerX, bottomCornerY, '''mouseLeft, mouseMiddle, or mouseRight''')
                menu = False
    

    然后继续输出。

    它的工作原理是获取一个矩形的坐标并将鼠标位置与矩形内部进行比较,如果鼠标单击正确的按钮并且位于矩形内部,则为真。希望这有帮助。

        6
  •  0
  •   Community Egal    7 年前

    我发现这里有两个简单的菜单弹出程序:

    精致的菜单: http://code.google.com/p/simple-pygame-menu/

    简单弹出窗口: How to specify what actually happens when Yes/No is clicked with ctypes MessageBoxW?