当谈到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()