用于牌类游戏的Python GUI
我打算用Python写一个纸牌游戏,现在在找图形用户界面(GUI),我对Python还很陌生。
到目前为止,我试过两个GUI:TK(也叫TKinter)和wxPython。
但这两个似乎都不能做到我想要的,如果我错了请纠正我:
拖动一个包含卡片图像的面板
而且这不仅仅是拖动的问题。具体情况是:
- 我想把卡片放在一个容器里。这个容器应该能显示卡片的正面和背面,所以我希望每张卡片都是一个面板,而不是单纯的图片。
- 图片应该可以有透明的区域(卡片的角是圆的)。
- 这个面板(容器)也应该是透明的(这样卡片可以在不同的背景颜色上拖动,比如桌子上其他的卡片等等)。
TKinter:据我了解,它不能做到第3点。
wxPython:据我了解,它不能做到第2点。
我可以继续一个个去尝试不同的GUI,但这真的很耗时间,所以我有几个问题:
- TKinter和wxPython真的有这些不足吗?
- 如果是的话,那我该用哪个GUI呢?
我听说过pygame,但我对GUI的要求其实并不高。Swing(Java)可以做到这些,而它也不是专门为游戏设计的。
4 个回答
1
Tkinter可以处理透明的GIF图片。不过,你提到的“容器”要求有点难以理解。我不明白透明和能否在不同颜色的背景上拖动它有什么关系。
当然,你可以在画布上把一些对象(比如图片、圆角矩形等)组合在一起,这些对象之间或者周围可以留空白。而且你也可以画圆角并拖动这些对象。
6
wxPython可以实现透明效果,你只需要使用透明的PNG图片。
png = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
wx.StaticBitmap(self, -1, png, (10, 5), (png.GetWidth(), png.GetHeight()))