pyglet 是 Python 的跨平台窗口和多媒体库,用于开发游戏和其他视觉丰富的应用程序。它支持窗口化、用户界面事件处理、操纵杆、OpenGL 图形、加载图像和视频以及播放声音和音乐。 pyglet 适用于 Windows、OS X 和 Linux。
Pyglet 拥有活跃的开发人员和用户社区。如果您发现文档中的错误或问题,请打开一个问题。欢迎任何人加入我们的不和谐服务器,那里正在进行大量的开发讨论。这也是寻求帮助的好地方。
一些特征:
1.没有外部依赖或安装要求。对于大多数应用程序和游戏需求,pyglet 除了 Python 之外不需要其他任何东西,简化了分发和安装。使用诸如 PyInstaller 之类的冷冻器来打包您的项目很容易。
2.利用多个窗口和多显示器桌面。 pyglet 允许您使用多个平台原生窗口,并且完全了解用于全屏游戏的多显示器设置。
3.加载几乎任何格式的图像、声音、音乐和视频。 pyglet 可以选择使用 FFmpeg 来播放 MP3、OGG/Vorbis 和 WMA 等音频格式,以及 MPEG2、H.264、H.265、WMV 和 Xvid 等视频格式。如果没有 FFmpeg,pyglet 包含对标准格式(例如 wav、png、bmp 等)的内置支持。
4.pyglet 完全用纯 Python 编写,并使用 ctypes 模块与系统库交互。您可以修改代码库或做出贡献,而无需任何第二语言编译步骤或编译器设置。尽管是纯 Python,pyglet 具有出色的性能,这要归功于用于绘制数千个对象的高级批处理。
5.pyglet 是在 BSD 开源许可下提供的,允许您将其用于商业和其他开源项目,几乎没有限制。
要求:
pyglet 在 Python 3.6+ 下运行。它是用纯 Python 编写的,也适用于其他 Python 解释器,例如 PyPy。支持的平台有:
Windows 7 或更高版本
Mac OS X 10.3 或更高版本
Linux,具有以下库(最近的发行版将在默认安装中包含这些库):
OpenGL 和 GLX
GDK 2.0+ 或 Pillow(加载 PNG 和 BMP 以外的图像需要)
OpenAL 或 Pulseaudio(播放音频需要)
请注意,pyglet v1.5 可能是支持旧版 OpenGL 的最后一个版本。 pyglet 的未来版本将针对 OpenGL 3.3+。以前的版本仍可供下载。
从 1.4 版开始,要播放压缩的音频和视频文件,您还需要 FFmpeg。
安装:
pip install pyglet
Contributing:
开始为 pyglet 的组件做贡献的一个好方法是查看它的文档。在研究您将要使用的代码时,还要阅读相关的文档。如果您在文档的帮助下不理解代码,则表明文档应该得到改进。
如果你想为 pyglet 做出贡献,我们建议如下:
Fork 官方仓库。
签出您希望贡献的分支(例如 pyglet-1.4-maintenance)。
将您的更改应用到您的 fork。
提交描述您所做更改的拉取请求。
或者,您可以创建补丁并将其提交给问题跟踪器。
在提出拉取请求时,请检查您是否在代码文档字符串和编程指南(如果适用)中处理了各自的文档。文档与最新代码相匹配对我们所有人都非常重要,反之亦然。
因此,文档中的错误,无论是因为难以理解还是因为它与代码不匹配,都是值得在故障单上报告的错误。
import pyglet
window = pyglet.window.Window()
label = pyglet.text.Label('Hello, world',
font_name='Times New Roman',
font_size=36,
x=window.width//2, y=window.height//2,
anchor_x='center', anchor_y='center')
@window.event
def on_draw():
window.clear()
label.draw()
pyglet.app.run()
代码得到的图如下:
image.png莫明觉得很好看。
~~~~~
第二个库
PyQt 是 Qt 公司 Qt 应用程序框架的一组 Python 绑定,可在 Qt 支持的所有平台上运行,包括 Windows、macOS、Linux、iOS 和 Android。 PyQt6 支持 Qt v6,PyQt5 支持 Qt v5,PyQt4 支持 Qt v4。这些绑定是作为一组 Python 模块实现的,包含 1,000 多个类。
不再支持 PyQt4 和 Qt v4,也不会发布新版本
PyQt 在所有支持的平台上都获得了 GNU GPL v3 和 Riverbank Commercial License 的双重许可。与 Qt 不同,PyQt 在 LGPL 下不可用。您可以在此处购买 PyQt 的商业版本。有关许可的更多信息可以在许可常见问题解答中找到。
PyQt 不包含 Qt 的副本。您必须自己获得 Qt 的正确许可副本。但是,提供了 PyQt6 和 PyQt5 的 GPL 版本的二进制轮子,其中包括 Qt 的相应 LGPL 版本的副本。
PyQt5 组件的描述可以在 PyQt5 参考指南中找到。
PyQt4 组件的描述可以在 PyQt4 参考指南中找到。
PyQt 汇集了 Qt C++ 跨平台应用程序框架和跨平台解释语言 Python。
Qt 不仅仅是一个 GUI 工具包。它包括网络套接字、线程、Unicode、正则表达式、SQL 数据库、SVG、OpenGL、XML、功能齐全的 Web 浏览器、帮助系统、多媒体框架以及丰富的 GUI 小部件集合的抽象。
Qt 类采用信号/槽机制在对象之间进行通信,该机制是类型安全但松散耦合的,从而可以轻松创建可重用的软件组件。
Qt 还包括 Qt Designer,一个图形用户界面设计器。 PyQt 能够从 Qt Designer 生成 Python 代码。还可以将用 Python 编写的新 GUI 控件添加到 Qt Designer。
Python 是一种简单但功能强大的面向对象语言。它的简单性使其易于学习,但它的强大功能意味着可以创建大型复杂的应用程序。它的解释性质意味着 Python 程序员非常高效,因为没有编辑/编译/链接/运行开发周期。
Python 的大部分功能来自其全面的扩展模块集,这些扩展模块提供了多种功能,包括 HTTP 服务器、XML 解析器、数据库访问、数据压缩工具,当然还有图形用户界面。扩展模块通常用 Python、C 或 C++ 实现。使用诸如 SIP 之类的工具,可以相对直接地创建封装现有 C 或 C++ 库的扩展模块。以这种方式使用,Python 可以成为从已建立的库创建新应用程序的粘合剂。
PyQt 结合了 Qt 和 Python 的所有优点。程序员拥有 Qt 的所有功能,但能够以 Python 的简单性来利用它。
#!/usr/bin/python
"""
ZetCode PyQt6 tutorial
In this example, we create a simple
window in PyQt6.
Author: Jan Bodnar
Website: zetcode.com
"""
import sys
from PyQt6.QtWidgets import QApplication, QWidget
def main():
app = QApplication(sys.argv)
w = QWidget()
w.resize(250, 200)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec())
if __name__ == '__main__':
main()
这是一个显示小窗口的简单示例。然而,我们可以用这个窗口做很多事情。我们可以调整它的大小、最大化或最小化它。这需要大量的编码。有人已经对此功能进行了编码。因为它在大多数应用程序中都是重复的,所以不需要重新编码。 PyQt6 是一个高级工具包。如果我们在较低级别的工具包中编码,下面的代码示例很容易有数百行。
image.png
网友评论