美文网首页
pythonGUI学习

pythonGUI学习

作者: Rain师兄 | 来源:发表于2021-12-30 00:45 被阅读0次

    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

    相关文章

      网友评论

          本文标题:pythonGUI学习

          本文链接:https://www.haomeiwen.com/subject/zeabqrtx.html