python基础-推荐8个常用的Python GUI图形界面开发框架

devtools/2025/1/19 14:28:13/

在Python中,GUI(图形用户界面)开发框架为开发者提供了创建交互式应用程序的工具。以下是八款常用的Python GUI图形界面开发框架及其简要代码讲解:

CSDN大礼包:《2024年最新全套学习资料包》免费分享

1. Tkinter

  • 简介:Tkinter是Python的标准GUI库,它提供了一个简单的方式来创建窗口、对话框等GUI元素。Tkinter被整合到当前所有主要操作系统的Python安装程序中,因此无需额外安装。
  • 代码示例
python">
python复制代码import tkinter as tkroot = tk.Tk()root.title("Tkinter Example")label = tk.Label(root, text="Hello, Tkinter!")label.pack()button = tk.Button(root, text="Click Me", command=root.quit)button.pack()root.mainloop()
2. PyQt
  • 简介:PyQt是Qt库的Python版本,Qt是一个跨平台的C++图形用户界面应用程序开发框架。PyQt提供了丰富的GUI组件和强大的功能,适用于开发大型应用程序。
  • 代码示例(以PyQt5为例):
python">from PyQt5.QtWidgets import QApplication, QLabel, QWidgetapp = QApplication([])window = QWidget()
window.setWindowTitle('PyQt5 Example')
window.setGeometry(100, 100, 280, 80)label = QLabel(window)
label.setText('Hello, PyQt5!')
label.move(95, 20)window.show()
app.exec_()
3. wxPython
  • 简介:wxPython是wxWidgets库的Python封装,wxWidgets是一个跨平台的C++ GUI库。wxPython提供了丰富的GUI组件和强大的跨平台能力。
  • 代码示例
python">import wxclass MyFrame(wx.Frame):def __init__(self, *args, **kw):super(MyFrame, self).__init__(*args, **kw)self.SetTitle("wxPython Example")panel = wx.Panel(self)text = wx.StaticText(panel, label="Hello, wxPython!", pos=(10, 10))btn = wx.Button(panel, label="Close", pos=(10, 40))btn.Bind(wx.EVT_BUTTON, self.OnClose)def OnClose(self, event):self.Close()class MyApp(wx.App):def OnInit(self):frame = MyFrame(None, size=(300, 100))frame.Show()return Trueapp = MyApp()
app.MainLoop()
4. Kivy
  • 简介:Kivy是一个开源的Python GUI框架,它使用OpenGL ES 2进行渲染,支持多点触控和跨平台开发。Kivy适用于开发游戏和具有复杂交互的应用程序。
  • 代码示例
python">from kivy.app import App
from kivy.uix.label import Labelclass MyApp(App):def build(self):return Label(text='Hello, Kivy!')if __name__ == '__main__':MyApp().run()
5. Flexx
  • 简介:Flexx是一个纯Python工具包,用于创建图形化界面应用程序。它使用Web技术进行界面渲染,因此可以创建桌面应用和导出为独立的HTML文档。
  • 代码示例
python">from flexx import flxclass MyApp(flx.App):def init(self):self.label = flx.Label(text='Hello, Flexx!')def render(self):return flx.Widget(content=[self.label])app = MyApp.launch()
flx.run()
6. PySimpleGUI
  • 简介:PySimpleGUI是一个易于使用的Python GUI框架,它封装了多个流行的GUI库(如Tkinter、PyQt等),提供了简单的API来创建GUI应用程序。
  • 代码示例
python">import PySimpleGUI as sglayout = [[sg.Text('Hello, PySimpleGUI!'), sg.Button('OK')]]window = sg.Window('Demo', layout)while True:event, values = window.read()if event == sg.WINDOW_CLOSED or event == 'OK':breakwindow.close()
7. PyGTK(或PyGObject)
  • 简介:PyGTK(或PyGObject)是GTK+库的Python绑定,GTK+是一个用于创建图形用户界面的跨平台工具包。PyGTK提供了丰富的GUI组件和强大的功能。
  • 代码示例(以PyGObject为例):
python">from gi.repository import Gtkclass MyWindow(Gtk.Window):def __init__(self):super().__init__(title="PyGObject Example")self.set_default_size(200, 100)self.label = Gtk.Label(label="Hello, PyGObject!")self.add(self.label)win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
8. Urwid
  • 简介:Urwid是一个用于创建文本用户界面的Python库,它提供了丰富的控件和布局管理器,适用于开发命令行应用程序。
  • 代码示例
python">import urwiddef main():txt = urwid.Text("Hello, Urwid!")fill = urwid.Filler(txt, 'top')loop = urwid.MainLoop(fill, palette=[('reversed', 'standout', '')])loop.run()if __name__ == '__main__':main()
这些框架各有特点,适用于不同的应用场景。开发者可以根据自己的需求选择合适的框架进行GUI开发。

http://www.ppmy.cn/devtools/151836.html

相关文章

iOS - TLS(线程本地存储)

从源码中,详细总结 TLS (Thread Local Storage) 的实现: 1. TLS 基本结构 // TLS 的基本结构 struct tls_data {pthread_key_t key; // 线程本地存储的键void (*destructor)(void *); // 清理函数 };// 自动释放池的 TLS class Autorelease…

windows 搭建flutter环境,开发windows程序

环境安装配置: 下载flutter sdk https://docs.flutter.dev/get-started/install/windows 下载到本地后,随便找个地方解压,然后配置下系统环境变量 编译windows程序本地需要安装vs2019或更新的开发环境 主要就这2步安装后就可以了&#xff0…

WPF 实现可视化操作数据库的程序全解析

在软件开发中,实现对数据库的可视化操作能极大提升开发效率和用户体验。借助 WPF(Windows Presentation Foundation)强大的界面开发能力,我们可以打造出功能丰富、交互友好的数据库操作程序。本文将详细介绍如何使用 WPF 搭建一个…

自动驾驶汽车需要哪些传感器来感知环境

自动驾驶汽车需要多种传感器来感知环境,这些传感器协同工作,为车辆提供全面、准确的环境信息,从而实现安全、高效的自动驾驶。以下是主要的传感器类型及其功能: 1. 摄像头(Camera) 工作原理:摄…

【Elasticsearch】搜索类型介绍,以及使用SpringBoot实现,并展现给前端

Elasticsearch 提供了多种查询类型,每种查询类型适用于不同的搜索场景。以下是八种常见的 Elasticsearch 查询类型及其详细说明和示例。 1. Match Query 用途:用于全文搜索,会对输入的文本进行分词,并在索引中的字段中查找这些分…

神州数码--制作wifi

防火墙: #ip vrouter trust-vr#router ospf 1#router-id 8.8.8.8#network 10.0.0.0/30 area 0.0.0.0#network 10.0.0.4/30 area 0.0.0.0#network 10.0.0.8/30 area 0.0.0.0 交换机: #vlan 10;50#ip add 192.168.10.1 255.255.255.0#int vlan 50#ip add 192.168.50.…

基于SSM汽车美容管家【提供源码+答辩PPT+文档+项目部署】(高质量源码,可定制,提供文档,免费部署到本地)

作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

【湖南省乡镇界】面图层shp格式arcgis数据乡镇名称和编码2020年wgs84坐标内容测评

标题中的“湖南省乡镇界面图层shp格式arcgis数据乡镇名称和编码2020年wgs84坐标无偏移.zip”表明这是一份地理信息系统(GIS)数据,具体为湖南省内各乡镇的边界图层。这些数据是用于描述湖南省各乡镇行政区域的界限,并且是以ESRI公司…