1. 简介
Python是一种高级编程语言,因其易学易用、开发效率高等特点,备受喜爱。Python被广泛应用于开发Web、科学计算、数据处理等领域。然而,在图形界面开发方面,Python的原生库较为简单,不足以满足大多数需求。因此,Python GUI图形界面开发框架应运而生。本文介绍常用的8款Python GUI图形界面开发框架,可供开发者参考使用。
2. PyQT
2.1 简介
PyQT是Python GUI开发中最流行的框架之一,它基于Qt设计。PyQT具有易学易用、可移植性和可扩展性等优点,因此被广泛应用于许多行业,包括航空航天、自动化等领域。PyQT设计优秀,提供了丰富的控件库和API,适合开发各种复杂应用程序,如数据可视化、多媒体应用等。
2.2 安装
pip install pyqt5
pyqt5-tools
2.3 代码示例
import sys
from PyQt5.QtWidgets import QApplication, QWidget,QPushButton
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 button'
self.left = 10
self.top = 10
self.width = 320
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
button = QPushButton('Click me', self)
button.setToolTip('This is an example button')
button.move(100,70)
button.clicked.connect(self.on_click)
self.show()
def on_click(self):
print('Button clicked')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
3. Tkinter
3.1 简介
Tkinter是Python自带的图形用户界面(GUI)程序库之一。 Tkinter强大、简单并且易于学习,是Python的标准GUI包,使用起来非常方便。Tkinter 跨平台兼容,并可以与 Python 的其他功能、工具和库结合使用。
3.2 安装
Tkinter是Python的标准库,不需要另行安装。
3.3 代码示例
import tkinter as tk
class App(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()
def create_widgets(self):
self.hi_there = tk.Button(self)
self.hi_there["text"] = "Hello World\n(click me)"
self.hi_there["command"] = self.say_hi
self.hi_there.pack(side="top")
self.quit = tk.Button(self, text="QUIT", fg="red",
command=self.master.destroy)
self.quit.pack(side="bottom")
def say_hi(self):
print("hi there, everyone!")
root = tk.Tk()
app = App(master=root)
app.mainloop()
4. WxPython
4.1 简介
WxPython是Python语言的开发工具包,提供了一种给Python应用程序创建操作系统原生界面的方法。可以为Windows、Mac OS X和Linux等平台提供原生的图形用户界面。
4.2 安装
pip install -U wxPython
4.3 代码示例
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super().__init__(parent, title=title, size=(350, 250))
panel = wx.Panel(self)
hbox = wx.BoxSizer(wx.HORIZONTAL)
self.label = wx.StaticText(panel,label='Hello World')
hbox.Add(self.label,wx.ALIGN_CENTER)
button = wx.Button(panel,wx.ID_EXIT)
hbox.Add(button, wx.ALIGN_CENTER)
button.Bind(wx.EVT_BUTTON, self.OnClose)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(hbox, proportion=1, flag=wx.ALIGN_CENTER)
panel.SetSizer(vbox)
def OnClose(self, event):
self.Destroy()
app = wx.App()
frame = MyFrame(None, 'Hello World App')
frame.Show()
app.MainLoop()
5. Kivy
5.1 简介
Kivy是跨平台的Python GUI框架,可用于创建各种应用程序。Kivy GUI框架是在MIT许可下发布的,允许免费使用。Kivy支持多点触控输入,提供了用户界面,灵活性和可扩展性高,同时还提供了跨平台性。
5.2 安装
pip install Kivy
5.3 代码示例
import kivy
kivy.require('1.11.1')
from kivy.app import App
from kivy.uix.button import Label
class MyApp(App):
def build(self):
return Label(text='Hello, world!')
if __name__ == '__main__':
MyApp().run()
6. PySide2
6.1 简介
PySide2是一个跨平台的Python GUI框架,提供了创建用户界面的完整解决方案。它是Qt库的一个Python包装器,具有易于学习、可扩展性、跨平台性等优点。
6.2 安装
pip install pyside2
6.3 代码示例
import sys
from PySide2.QtWidgets import QApplication, QLabel, QWidget
app = QApplication(sys.argv)
widget = QWidget()
label = QLabel('Hello, world!')
label.show()
widget.show()
sys.exit(app.exec_())
7. PyGUI
7.1 简介
PyGUI是一个轻量级Python GUI框架,用于快速创建用户界面。PyGUI不依赖于任何外部库,具有易学易用、可移植性等特点,适用于创建简单的桌面应用程序。
7.2 安装
pip install pygui
7.3 代码示例
import pygui
def main():
window = pygui.Window('Hello, world!', 300, 200)
window.show()
pygui.run()
if __name__ == '__main__':
main()
8. PyForms
8.1 简介
PyForms是一个跨平台的Python GUI框架,用于开发多种类型的桌面应用程序。PyForms特别适合于构建高级且交互式的图形用户界面,因为它提供了许多内置控件和功能。
8.2 安装
pip install pyforms
8.3 代码示例
from pyforms.basewidget import BaseWidget
from pyforms.controls import ControlText
class HelloWorld(BaseWidget):
def __init__(self):
super().__init__('Hello World')
# Definition of the forms fields
self._firstname = ControlText('First name', 'Default value')
self._middlename = ControlText('Middle name')
self._lastname = ControlText('Lastname name')
# Execute the application
if __name__ == "__main__":
import pyforms
pyforms.start_app(HelloWorld)
9. 总结
Python GUI图形界面开发框架有许多,本文介绍了常用的8款框架,分别是PyQT、Tkinter、WxPython、Kivy、PySide2、PyGUI、PyForms。需要根据实际应用场景选择适合的框架。