推荐8款常用的Python GUI图形界面开发框架

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。需要根据实际应用场景选择适合的框架。

后端开发标签