用于纸牌游戏的Python GUI

时间:2012-02-07 17:23:16

标签: python user-interface wxpython tkinter

我打算在python中编写一个纸牌游戏,现在正在寻找一个GUI(我是Python的新手)。 到目前为止,我已经尝试了两个GUI: TK (inter)和 wxPython

要做到这一点,他们似乎都没有能力,并纠正我,如果我错了

  

拖动带有卡片图像的面板

它甚至不是拖延。这就是情况

  1. 我想把卡放在一个容器里。它应该能够显示卡的正面和背面,所以我希望每张卡都是面板而不是裸图像。
  2. 图像应该能够有透明区域(卡角是圆角的)
  3. 面板(容器)应该能够透明(所以卡片可以拖过不同的背景颜色,桌子上的其他卡片,......)
  4. TKinter :根据我的理解不能做3

    wxPython :根据我的理解不能做2。

    我可以在GUI之后继续发现GUI,但这有点费时,所以我的问题是:

    1. TKinter和wxPython是否有这些缺点?
    2. 如果是,那要去哪个GUI?
    3. 我听说过pygame,但我对GUI的要求并不是那么多。 Swing(java)可以做到这一点,而且这也不是游戏中心。

4 个答案:

答案 0 :(得分:7)

由于您想编写游戏,我建议使用GUI库。相反,您应该寻找游戏库,例如PyGamePyOpenGlKivy(除了其他人)。它们都应该满足你的需求。

答案 1 :(得分:6)

wxPython可以做透明度,你只需要使用透明png。

png = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
wx.StaticBitmap(self, -1, png, (10, 5), (png.GetWidth(), png.GetHeight()))

Showing a .png image in a window in wxPython

答案 2 :(得分:1)

你应该看一下wxPython演示的例子,并在wxPython邮件列表上询问是否有人做过类似的事情。在演示中,有一个DragImage演示,可以完成您正在寻找的一些内容。

否则,其中一个Python游戏库可能会更好地满足您的需求。 PyGame可能是最知名的。有一段时间,Pyglet正在获得动力。另请参阅wxPython or pygame for a simple card game?

答案 3 :(得分:1)

Tkinter可以处理透明的GIF。但是,您的“容器”要求有点难以理解。我不明白透明度与将它拖到不同颜色的背景上的能力有关。

当然,您可以在画布上将对象(图像,圆角重叠,ec)组合在一起,并且这些对象可以在它们之间/周围有空白空间,您当然可以绘制圆角并拖动对象。