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

news/2025/2/8 11:32:28 标签: 数据库, python, Python基础, 开发语言, 爬虫

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

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

1. Tkinter

  • 简介:Tkinter是Python的标准GUI库,它提供了一个简单的方式来创建窗口、对话框等GUI元素。Tkinter被整合到当前所有主要操作系统的Python安装程序中,因此无需额外安装。
  • 代码示例
python">
python复制代码


import tkinter as tk



root = 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, QWidget

app = 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 wx

class 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 True

app = MyApp()
app.MainLoop()
4. Kivy
  • 简介:Kivy是一个开源的Python GUI框架,它使用OpenGL ES 2进行渲染,支持多点触控和跨平台开发。Kivy适用于开发游戏和具有复杂交互的应用程序。
  • 代码示例
python">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. Flexx
  • 简介:Flexx是一个纯Python工具包,用于创建图形化界面应用程序。它使用Web技术进行界面渲染,因此可以创建桌面应用和导出为独立的HTML文档。
  • 代码示例
python">from flexx import flx

class 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 sg

layout = [[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':
        break

window.close()
7. PyGTK(或PyGObject)
  • 简介:PyGTK(或PyGObject)是GTK+库的Python绑定,GTK+是一个用于创建图形用户界面的跨平台工具包。PyGTK提供了丰富的GUI组件和强大的功能。
  • 代码示例(以PyGObject为例):
python">from gi.repository import Gtk

class 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 urwid

def 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.niftyadmin.cn/n/5844810.html

相关文章

机器学习-关于线性回归的表示方式和矩阵的基本运算规则

最近在学习机器学习的过程中,发现关于线性回归的表示和矩阵的运算容易费解,而且随着学习的深入容易搞混,因此特意做了一些研究,并且记录下来和大家分享。 一、线性模型有哪些表示方式? 器学习中,线性模型…

已验证正常,Java输入字符串生成PDF文件

Java输入字符串生成PDF文件过程&#xff1a; 在Java开发中&#xff0c;如何将字符串转换为 PDF 是一个常见的需求。网上找了很多例子都无法生成&#xff0c;经过多次尝试&#xff0c;终于实现了&#xff0c;特此记录一下。 1、引入pom.xml 添加所需的依赖 <dependency>&…

Nginx 中启用 Gzip 压缩以优化网页加载速度

&#x1f3e1;作者主页&#xff1a;点击&#xff01; Nginx-从零开始的服务器之旅专栏&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2025年2月7日17点14分 目录 1. 配置网页压缩 目的 …

android skia渲染介绍

Android AOSP 的渲染系统主要使用 Skia 图形库。Skia 是一个开源的 2D 图形库&#xff0c;它被广泛应用于 Android 的图形渲染中&#xff0c;负责绘制 UI 元素、文本、图像以及其他 2D 图形内容。 以下是 Android AOSP 中 Skia 的作用和它在渲染系统中的位置&#xff1a; 1. 什…

【R】Dijkstra算法求最短路径

使用R语言实现Dijkstra算法求最短路径 求点2、3、4、5、6、7到点1的最短距离和路径 1.设置data&#xff0c;存放有向图信息 data中每个点所在的行序号为起始点序号&#xff0c;列为终点序号。 比如&#xff1a;值4的坐标为(1,2)即点1到点2距离为4&#xff1b;值8的坐标为(6,7)…

Day56_20250204_图论part1_图论理论基础|深搜理论基础|98.所有可达路径|广搜理论基础

Day56_20250204_图论part1_图论理论基础|深搜理论基础|98.所有可达路径|广搜理论基础 深搜理论基础 基础知识 深搜与广搜并查集最小生成树拓扑排序最短路算法 图论理论基础 图的基本概念 多个点连线 连通性 表示节点的连通情况 无向图 连通图非连通图连通分量&#xff1a;极…

Godot开发框架探索#2

前言 距离上次发文又又又隔了很长一段时间。主要原因还是因为思绪在徘徊&#xff0c;最近纠结的点有以下几个&#xff1a;1.渴求一个稳定的Godot开发框架&#xff1b;2.要不要使用更轻量的开发框架&#xff0c;或者直接写引擎&#xff1b; 3.对自己想做的游戏品类拿不定主意。…

机试题——最佳检测序列

题目描述 有一家云存储服务提供商&#xff0c;他们家的核心产品是一个可扩展的分布式存储系统。他们的客户使用他们的服务来存储和管理各种数据&#xff0c;包括文档、图片、视频等。由于客户对数据的可靠性和可用性要求非常高&#xff0c;他们需要提供高可用性的存储服务&…