不会Python GUI?这些框架可太友好了

2023年 11月 3日 49.5k 0

当谈到Python图形用户界面(GUI)框架,对于初学者来说,可能会感到困惑,但实际上,入门并没有想象的那么难。有很多肥肠友好的库供大家选择,一起看看吧。

PyGUI

PyGUI允许开发人员将Python独特功能与应用程序无缝结合,它被设计为易于使用、动态、GPU 加速和跨平台。支持Windows、macOS 和 Linux。提供了广泛的 GUI 元素,例如按钮、单选按钮、菜单以及用于创建功能布局的各种方法,还包括动态图形、表格、绘图功能、调试器和资源查看器。文档设计得非常适合轻松开发,抽象了 GUI 编程的许多复杂性,使开发人员能够专注于构建他们的应用程序可以兼容Python2与3,使用如下命令安装:

pip install dearpygui

以下是一个简单的 PyGUI 程序示例,该程序创建一个带有按钮的窗口:

import dearpygui.dearpygui as dpg

def on_button_click():
    print("Button clicked!")

with dpg.window(label="My Window"):
    dpg.add_button(label="Click me", callback=on_button_click)

dpg.start_dearpygui()

PySimpleGUI

PySimpleGUI 旨在使初学者和经验丰富的程序员都可以使用 Python 进行 GUI 开发。它提供了一个高级界面,简化了 GUI 窗口和元素的创建。它巧妙地结合了TKinter、Remi、Qt和WxPython的优点,使可视元素的访问变得轻而易举。提供了各种可以轻松添加到布局中的 GUI 元素,包括按钮、复选框、单选按钮、输入字段、滑块等。这些元素可以用不同的样式和属性进行定制。提供全面的文档和示例程序集合,演示各种用例和功能,经验丰富的开发人员可以深入研究PySimpleGUI的全部功能,支持Windows、macOS 和 Linux,使用如下命令安装:

pip install pysimplegui

下面是一个简单的 PySimpleGUI 程序示例,该程序创建一个带有按钮的窗口:

import PySimpleGUI as sg

layout = [[sg.Button('Click me')]]

window = sg.Window('My Window', layout)

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    elif event == 'Click me':
        print('Button clicked!')

window.close()

Kivy

Kivy是一个免费且开源的Python框架,用于开发具有自然用户界面(NUI)的多点触控应用程序(非常适合支持触摸的设备)。通过其广泛的工具库,开发人员可以构造出色的用户界面。Kivy 提供快速高效的开发流程,提供了一套全面的工具和小部件,可以简化 GUI 应用程序的创建。Kivy 文档和社区资源提供了广泛的指导、教程和示例,帮助开发者有效地学习和利用该框架。可以在多个平台上部署,无论是在iOS、Android、Windows、Mac OS、Raspberry Pi还是Linux上,Kivy都能发挥作用。使用如下命令安装:

pip install kivy

下面是一个简单的 Kivy程序示例,该程序创建一个带有按钮的窗口:

import kivy
from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Click me!', on_press=self.on_button_click)

    def on_button_click(self, instance):
        print('Button clicked!')

if __name__ == '__main__':
    TestApp().run()

PySide2

PySide2,也被称为Qt for Python,提供了广泛的小部件和工具,允许开发人员创建可以在Windows、macOS、Linux等平台上运行的跨平台应用程序。支持Qt框架的各种功能,包括信号和槽、布局、样式表等。Pyside2提供完善的视频指南、示例、教程和API文档并拥有庞大的开发人员社区,易于找到资源和支持,使用如下命令安装:

pip install PySide2

以下是创建一个带有按钮窗口的示例:

import sys
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("My App")
        button = QPushButton("Click me!")
        button.clicked.connect(self.on_button_click)
        self.setCentralWidget(button)

    def on_button_click(self):
        print("Button clicked!")

app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()

Tkinter

Tkinter是Python的标准GUI库,提供了创建GUI应用程序的各种工具和组件,可以让开发人员方便地创建图形界面并与用户进行交互。可以使用Tkinter创建各种GUI组件,如窗口、标签、按钮、文本框等。在使用Tkinter开发GUI应用程序时,需要掌握一些基本的概念和技巧,如组件的布局、事件处理、属性设置等。同时,Tkinter还提供了许多标准的对话框、菜单和工具栏等组件,可以在应用程序中方便地使用。需要注意的是,Tkinter并不是最强大、最灵活的GUI库,但是它是Python标准库的一部分,因此可以很方便地在各个平台上使用,以下是创建一个带有按钮窗口的示例

import tkinter as tk

def on_button_click():
    print('Button clicked!')

root = tk.Tk()
root.title('My Window')
button = tk.Button(root, text='Click me!', command=on_button_click)
button.pack()
root.mainloop()

PyQt5

PyQt5是一个用于创建GUI应用程序的Python库,它是Qt库的Python接口。可以在Mac OS X、Linux、Windows、Android和Raspberry Pi上创建应用程序。PyQt5提供了许多内置的组件和工具,如按钮、文本框、标签、菜单和工具栏等,可以帮助开发人员更轻松地创建应用程序。PyQt5还提供了一个易于使用的API,允许开发人员使用信号和槽机制等高级特性来处理用户输入和事件,使用如下命令安装

pip install PyQt5

以下是创建一个带有按钮窗口的示例:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("My App")
        button = QPushButton("Click me!")
        button.clicked.connect(self.on_button_click)
        self.setCentralWidget(button)

    def on_button_click(self):
        print('Button clicked!')

app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()

wxPython

wxPython是一个用于创建GUI应用程序的Python库。wxPython提供了一个易于使用的API,可以让开发人员使用Python语言创建各种类型的GUI应用程序。提供了许多内置的组件和工具,如按钮、文本框、标签、菜单和工具栏等,可以帮助开发人员更轻松地创建应用程序。可以在Windows、Linux和Mac OS X等操作系统上运行,使用如下命令安装:

pip install wxPython

以下是创建一个带有按钮窗口的示例:

import wx

class MainWindow(wx.Frame):
    def __init__(self, parent, title):
        super(MainWindow, self).__init__(parent, title=title, size=(300, 200))
        panel = wx.Panel(self)
        button = wx.Button(panel, label="Click me!", pos=(100, 50))
        button.Bind(wx.EVT_BUTTON, self.on_button_click)

    def on_button_click(self, event):
        print('Button clicked!')

app = wx.App()
window = MainWindow(None, "My App")
window.Show()
app.MainLoop()

PyGame

why PyGame?除了是一个有用的GUI框架外,Pygame 是一个常用于游戏开发和多媒体应用程序的 Python 库,它提供了用 Python 创建游戏和丰富的多媒体程序的功能。构建在 Simple DirectMedia Layer (SDL) 之上,允许访问多媒体硬件组件,例如声音、视频、鼠标、键盘和操纵杆,包含了广泛的功能,如:

  • 允许创建和操作图像、绘制形状以及应用转换
  • 可以处理键盘、鼠标和操纵杆输入来控制游戏
  • 提供在游戏中播放声音和音乐的功能
  • 包含碰撞检测函数来处理游戏对象之间的碰撞
  • 可以通过随时间更新游戏对象的位置和外观来创建动画
  • 可以将第三方物理引擎与Pygame集成使用

如下命令安装:

python -m pip install pygame

以下是一个 Pygame 程序的简单示例,它显示一个窗口并处理基本的用户输入:

import pygame

pygame.init()

# Set up the display
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("My Game")

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Update game logic here

    # Clear the screen
    screen.fill((0, 0, 0))

    # Draw game objects here

    # Update the display
    pygame.display.flip()

pygame.quit()

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论