七个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 相关文章推荐
python使用beautifulsoup从爱奇艺网抓取视频播放
Jan 23 Python
python实现读取excel写入mysql的小工具详解
Nov 20 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
python中不能连接超时的问题及解决方法
Jun 10 Python
Python读取系统文件夹内所有文件并统计数量的方法
Oct 23 Python
3分钟学会一个Python小技巧
Nov 23 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
Jun 06 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 Python
python 使用openpyxl读取excel数据
Feb 18 Python
Python实现智慧校园自动评教全新版
Jun 18 Python
利用Python判断整数是否是回文数的3种方法总结
Jul 07 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Python基础之pandas数据合并
上手简单,功能强大的Python爬虫框架——feapder
python绘制箱型图
基于Python实现的购物商城管理系统
Apr 27 #Python
详解用Python把PDF转为Word方法总结
python实现的web监控系统
You might like
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
php中smarty区域循环的方法
2015/06/11 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
thinkphp3.x中cookie方法的用法分析
2016/05/19 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
使用JQuery选择HTML遍历函数的方法
2016/09/17 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
Python使用遗传算法解决最大流问题
2018/01/29 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
keras中的卷积层&amp;池化层的用法
2020/05/22 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
python Socket网络编程实现C/S模式和P2P
2020/06/22 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
建筑工程专业学生的自我评价
2013/12/25 职场文书
顶岗实习接收函
2014/01/09 职场文书
清洁工岗位职责
2014/01/29 职场文书
《学会待客》教学反思
2014/02/22 职场文书
人力资源管理专业应届生求职信
2014/04/24 职场文书
贷款委托书怎么写
2014/08/02 职场文书
党校学习党性分析材料
2014/12/19 职场文书
优秀团支部申报材料
2014/12/26 职场文书