多个窗口(或多个盒子作为伪多窗口)在Pygame中的作用

2024-09-28 16:22:25 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我是python新手,但我确实有一些visualbasic的经验

我试图用pygame库用Python编写一个(最好是尽可能跨平台的)程序,我希望它有几个不同的同时运行的窗口。在

我在互联网上找了很多方法,有很多不同的选择,但是没有结果。我的尝试是这样的:

  1. 我最初试图找到一种方法来制作多个窗口,但是这个网站上的一个类似的问题澄清了由于pygame是基于SDL的,这是不可能的,所以我不得不“伪造”它。

  2. 我的第二个想法是有一个大的透明窗口,里面有更小的表面物体,让人产生多个窗口的错觉,但是不管我做了什么(透明键,表面α,填充透明颜色),窗口仍然是完全不透明的黑色。

  3. 我发现的第三个想法是再次“伪造”透明度,通过截取窗口后面图像的截图,将其作为表面对象的背景,但我还没有找到编码的方法。

所以我的问题是如何创建/伪造一个多窗口程序?是的,我知道要求很高,但为了更高一点,我可以请你解释一下任何可能的答案,并给出适当的解释吗?在

另外,如果你能找到一种方法,当点击显示表面的“透明”部分时,整个事情会最小化(到目前为止,我发现的唯一方法是在所需目标周围画一个矩形并检查碰撞,但这对我不起作用,因为那会在你点击的任何地方触发)

编辑:任何可能的解决方案都不一定是在pygame中,我刚刚提到过,这样您可能会理解我正在使用的库

编辑:感谢用户3424423的回答,我已经安装了PyQt,我可以截图,保存到一个目录中,然后blit到pygame窗口。我唯一的问题是屏幕截图包含了程序自己的窗口,我对它进行了编码,以便在创建窗口之前拍摄第一个图像,但即使这样,在窗口上显示的屏幕截图也会包括它自己,所以它并不是真正的“透明”。有什么想法吗?在


Tags: 方法图像程序编辑编码屏幕跨平台互联网