1. Tkinter
-
简介: Python 的标准 GUI 库,简单易用,无需额外安装。
-
优点:
- 内置于 Python,无需额外安装。
- 跨平台性好,可在 Windows、macOS 和 Linux 上运行。
- 简单易学,适合初学者。
-
缺点:
- 界面外观相对简陋,不够现代化。
- 功能相对有限,不适合开发复杂的 GUI 应用。
-
使用介绍:
- Tkinter 使用面向对象的方式构建 GUI,通过创建窗口、添加组件(如按钮、标签、文本框)来实现交互。
- 使用
tkinter
模块导入所需组件,创建窗口对象,然后使用组件的pack()
、grid()
或place()
方法布局组件。 - Tkinter的事件处理,通过command=函数名,将事件和函数绑定。
-
示例代码:
import tkinter as tk window = tk.Tk() window.title("Tkinter Example") label = tk.Label(window, text="Hello, Tkinter!") label.pack() button = tk.Button(window, text="Click me!") button.pack() window.mainloop()
2. PyQt
-
简介: 基于 Qt 库的 Python 绑定,功能强大,界面美观。
-
优点:
- 功能强大,支持丰富的 GUI 组件和特性。
- 界面美观,可定制性高。
- 跨平台性好。
-
缺点:
- 学习曲线较陡峭。
- PyQt是商业许可,如果你的程序用于商业用途,你需要购买商业许可。PySide是LGPL许可,商业用途可以免费使用,但是,如果你的程序是GPL许可,那么你必须使用GPL许可的PyQt。
-
使用介绍:
- PyQt 使用信号和槽机制处理事件,通过创建窗口、添加组件、连接信号和槽来实现交互。
- 使用
PyQt5
或PyQt6
模块导入所需组件,创建应用程序对象,然后创建窗口对象,添加组件,连接信号和槽。
-
示例代码:
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton app = QApplication(sys.argv) window = QWidget() window.setWindowTitle("PyQt Example") label = QLabel("Hello, PyQt!", window) label.move(50, 20) button = QPushButton("Click me!", window) button.move(50, 50) window.show() sys.exit(app.exec_())
3. wxPython
-
简介: 基于 wxWidgets 库的 Python 封装,跨平台性好,界面原生。
-
优点:
- 跨平台性好,界面外观接近原生应用。
- 功能丰富,支持多种 GUI 组件。
- 开源免费。
-
缺点:
- 学习曲线较陡峭。
- 安装包较大。
-
使用介绍:
- wxPython 的使用方式与 PyQt 类似,也是面向对象的方式,通过创建窗口、添加组件、绑定事件来实现交互。
- 使用
wx
模块导入所需组件,创建应用程序对象,然后创建窗口对象,添加组件,绑定事件。
-
示例代码:
import wx app = wx.App() frame = wx.Frame(None, title="wxPython Example") panel = wx.Panel(frame) label = wx.StaticText(panel, label="Hello, wxPython!", pos=(50, 20)) button = wx.Button(panel, label="Click me!", pos=(50, 50)) frame.Show(True) app.MainLoop()
4. Kivy
-
简介: 用于开发跨平台触摸应用的 Python 库,支持 Android 和 iOS。
-
优点:
- 跨平台性好,支持桌面和移动平台。
- 支持触摸操作,适合开发移动应用。
- Kivy开源免费。
-
缺点:
- 对于传统的桌面应用程序,Kivy可能不是最佳选择。
- 学习曲线较陡峭。
-
使用介绍:
- Kivy 使用 KV 语言描述界面,通过创建窗口、添加组件、定义事件来实现交互。
- 使用
kivy
模块导入所需组件,创建应用程序类,定义build()
方法,在build()
方法中使用 KV 语言描述界面。
-
示例代码:
from kivy.app import App from kivy.uix.label import Label class MyApp(App): def build(self): return Label(text='Hello, Kivy!') if __name__ == '__main__': MyApp().run()
5. PySimpleGUI
-
简介: PySimpleGUI简化了python GUI的制作流程,让开发者能够快速的建立起GUI页面。
-
优点:
- PySimpleGUI 简化了python GUI的制作流程,可以快速建立起GUI页面。
- PySimpleGUI的底层可以使用tkinter,Qt,WxPython,Remi。
- 学习曲线平缓。
-
缺点:
- 相较于原生的GUI库,PySimpleGUI在性能上会有所损失。
-
使用介绍:
- PySimpleGUI 通过简单的布局和元素创建 GUI。
- 通过定义布局(Layout),然后创建Window,读取window产生的事件和值。
-
示例代码:
import PySimpleGUI as sg layout = [[sg.Text("Hello, PySimpleGUI!")], [sg.Button("OK")]] window = sg.Window("PySimpleGUI Example", layout) while True: event, values = window.read() if event == "OK" or event == sg.WIN_CLOSED: break window.close()
如何选择
- 初学者或简单应用: Tkinter 或 PySimpleGUI。
- 桌面应用: PyQt 或 wxPython。
- 移动应用: Kivy。
- 需要美观界面: PyQt。
- 需要原生界面: wxPython。