七个Python必备的GUI库


Posted in Python onApril 27, 2021

GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。

与之相对应的则是CUI(命令行用户交互),就是常见的Dos命令行操作,需要记忆一些常用的命令,对于普通人而言,操作起来学习难度还是蛮高的。

一个好看又好用的GUI,可以大大提高大家的使用体验,提高效率。

比如你想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没有用户体验的。

所以开发一个图像化的小窗口,就变得很有必要。

今天,小F就给大家介绍七个Python必备的GUI库,每一个都值得学习。

01. PyQt5

PyQt5由Riverbank Computing开发。基于Qt框架构建,是一个跨平台框架,可以给各种平台创建应用程序,包括:Unix、Windows、Mac OS。

PyQt将Qt和Python结合在一起。它不只是一个GUI工具包。还包括了线程,Unicode,正则表达式,SQL数据库,SVG,OpenGL,XML和功能完善的Web浏览器,以及许多丰富的GUI小部件集合。

使用pip安装一下。

# 安装PyQt5
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5

安装成功后,来个Hello Word简单示例。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout

# 建立application对象
app = QApplication(sys.argv)
# 建立窗体对象
w = QWidget()
# 设置窗体大小
w.resize(500, 500)

# 设置样式
w.layout = QVBoxLayout()
w.label = QLabel("Hello World!")
w.label.setStyleSheet("font-size:25px;margin-left:155px;")
w.setWindowTitle("PyQt5 窗口")
w.layout.addWidget(w.label)
w.setLayout(w.layout)

# 显示窗体
w.show()
# 运行程序
sys.exit(app.exec_())

结果如下。

七个Python必备的GUI库

文档地址:

https://riverbankcomputing.com/software/pyqt/intro

教程链接:

https://www.guru99.com/pyqt-tutorial.html 

02. Tkinter 

Tkinter是Python中最受欢迎的GUI库之一。由于它简单易学的语法,成为GUI开发初学者的首选之一。

Tkinter提供了各种小部件,例如标签,按钮,文本字段,复选框和滚动按钮等。

支持Grid(网格)布局,由于我们的程序大多数都是矩形显示,这样即使是复杂的设计,开发起来也变得简单些。 

# 安装tkinter
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tkinter

下面使用Tkinter设计一个BMI计算器。

以重量和高度作为输入,并在弹出框中返回BMI系数作为输出。

from tkinter import *
from tkinter import messagebox

def get_height():
    # 获取身高数据(cm)
    height = float(ENTRY2.get())
    return height

def get_weight():
    # 获取体重数据(kg)
    weight = float(ENTRY1.get())
    return weight

def calculate_bmi():
    # 计算BMI系数
    try:
        height = get_height()
        weight = get_weight()
        height = height / 100.0
        bmi = weight / (height ** 2)
    except ZeroDivisionError:
        messagebox.showinfo("提示", "请输入有效的身高数据!!")
    except ValueError:
        messagebox.showinfo("提示", "请输入有效的数据!")
    else:
        messagebox.showinfo("你的BMI系数是: ", bmi)

if __name__ == '__main__':
    # 实例化object,建立窗口TOP
    TOP = Tk()
    TOP.bind("<Return>", calculate_bmi)
    # 设定窗口的大小(长 * 宽)
    TOP.geometry("400x400")
    # 窗口背景颜色
    TOP.configure(background="#8c52ff")
    # 窗口标题
    TOP.title("BMI 计算器")
    TOP.resizable(width=False, height=False)
    LABLE = Label(TOP, bg="#8c52ff", fg="#ffffff", text="欢迎使用 BMI 计算器", font=("Helvetica", 15, "bold"), pady=10)
    LABLE.place(x=55, y=0)
    LABLE1 = Label(TOP, bg="#ffffff", text="输入体重(单位:kg):", bd=6,
                   font=("Helvetica", 10, "bold"), pady=5)
    LABLE1.place(x=55, y=60)
    ENTRY1 = Entry(TOP, bd=8, width=10, font="Roboto 11")
    ENTRY1.place(x=240, y=60)
    LABLE2 = Label(TOP, bg="#ffffff", text="输入身高(单位:cm):", bd=6,
                   font=("Helvetica", 10, "bold"), pady=5)
    LABLE2.place(x=55, y=121)
    ENTRY2 = Entry(TOP, bd=8, width=10, font="Roboto 11")
    ENTRY2.place(x=240, y=121)
    BUTTON = Button(bg="#000000", fg='#ffffff', bd=12, text="BMI", padx=33, pady=10, command=calculate_bmi,
                    font=("Helvetica", 20, "bold"))
    BUTTON.grid(row=5, column=0, sticky=W)
    BUTTON.place(x=115, y=250)
    TOP.mainloop()

界面如下。

七个Python必备的GUI库

当没有数据时,点击BMI按钮,会有与之对应的提示。

下面我们使用正确的数据,来看看结果。

七个Python必备的GUI库

使用起来感觉还是不错的。

03. Kivy

Kivy是另一个开源的Python库,最大的优点就是可以快速地编写移动应用程序(手机)。

Kivy可以在不同的平台上运行,包括Windows、Mac OS、Linux、Android、iOS和树莓派。

此外也是免费使用的,获得了MIT许可。

# 安装kivy
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple kivy

一个基于Kivy的Hello World窗口。

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text=" Hello Kivy World ")

TestApp().run()

结果如下。

七个Python必备的GUI库

04. wxPython

wxPython是一个跨平台GUI的Python库,可轻松创建功能强大稳定的GUI,毕竟是用C++编写的~

目前,支持Windows,Mac OS X,macOS和Linux。

使用wxPython创建的应用程序(GUI)在所有平台上都具有原生外观。

# 安装wxPython
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple wxPython

下面使用wxPython创建一个基本的GUI示例。

import wx

myapp = wx.App()
init_frame = wx.Frame(parent=None, title='WxPython 窗口')

init_frame.Show()
myapp.MainLoop()

结果如下

七个Python必备的GUI库

文档链接:https://www.wxpython.org/

05. PySimpleGUI

PySimpleGUI也是基于Python的GUI框架。可以轻松制作自定义的GUI。

采用了四种最流行的GUI框架QT、Tkinter、WxPython和Remi,能够实现大多数样例代码,降低了学习难度。

Remi将应用程序的界面转换为HTML,以便在Web浏览器中呈现。

# 安装PySimpleGUI
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PySimpleGUI

下面是一个简单的案例。

import PySimpleGUI as sg

layout = [[sg.Text("测试 PySimpleGUI")], [sg.Button("OK")]]
window = sg.Window("样例", layout)
while True:
    event, values = window.read()
    if event == "OK" or event == sg.WIN_CLOSED:
        break
window.close()

结果如下。

七个Python必备的GUI库

点击OK按钮,窗口消失。

06. PyGUI

PyGUI是一个以简单API而闻名的GUI框架,减少Python应用与平台底层GUI之间的代码量。

轻量级的API,可以让你的应用程序运行起来更流畅,更快速。

同时还开源代码,跨平台项目。目前可在基于Unix的系统,Windows和Mac OS上运行。

Python2和Python3,都是可以支持的。

文档地址:

https://www.cosc.canterbury.ac.nz/greg.ewing/python_gui/

教程链接:

https://realpython.com/pysimplegui-python/

07. Pyforms

Pyforms是用于开发GUI应用程序的一个跨平台框架。

七个Python必备的GUI库

pyforms是一个Python2.7/3.x跨环境图形应用开发框架,模块化和代码复用可以节省大量工作。

允许应用程序在桌面,Web和终端上运行,无需修改代码。

# 安装PyFroms
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyFroms

文档地址:https://pyforms.readthedocs.io/en/v4/

项目地址:

链接:https://pan.baidu.com/s/1bSeDjNGWEia7xw5c1zpsYg  密码:aw5m

以上就是七个Python必备的GUI库的详细内容,更多关于python gui库的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
pycharm 使用心得(七)一些实用功能介绍
Jun 06 Python
深入理解python中的浅拷贝和深拷贝
May 30 Python
巧用python和libnmapd,提取Nmap扫描结果
Aug 23 Python
python模拟表单提交登录图书馆
Apr 27 Python
20行python代码实现人脸识别
May 05 Python
通过PHP与Python代码对比的语法差异详解
Jul 10 Python
使用turtle绘制五角星、分形树
Oct 06 Python
tensorflow-gpu安装的常见问题及解决方案
Jan 20 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
Python进行统计建模
Aug 10 Python
一篇文章教你用python画动态爱心表白
Nov 22 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
基于Python实现的购物商城管理系统
Apr 27 #Python
详解用Python把PDF转为Word方法总结
python实现的web监控系统
You might like
php 时间计算问题小结
2009/01/04 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
Python 中的range(),以及列表切片方法
2018/07/02 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
tensorflow常用函数API介绍
2020/04/19 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
县委常委班子对照检查材料思想汇报
2014/09/28 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
React四级菜单的实现
2022/04/08 Javascript
vue 给数组添加新对象并赋值
2022/04/20 Vue.js