强烈推荐一个Python库!制作Web Gui也太简单了!

python做界面,强烈推荐nicegui 在网上搜索 “python 做界面” ,得到的结果无非是TkinterwxWidgetsQtGtk。它们要不然就是打包后太大,要不就是界面丑,要不就是代码繁琐。这些都是 GUI,那么 web 界面又如何?我之前推荐过 streamlit,在简单的场景下,它仍然值得推荐。但是 streamlit 实在不灵活,受限于它的核心机制,有些需求几乎无法实现。用来做简单的数据看板,还行。streamlit 中加个边框线都很复杂,无语我需要一个灵活的web框架,可以做web服务的网站,也可以打包成独立的 exe。 阅读详情
AI摘要

文章介绍了NiceGui,一个Python的轻量级GUI库,可制作本地和WebGUI,支持Vue和Quasar,提供数据绑定、图表、用户输入等功能。它简化了前端开发并展示了其基本使用和特性。

前言

之前小编用Python做GUI界面,首选就是Tkinter、PyQt5 。但是它们实现起来工作量及代码量太大,还要一步步设计调试界面排版等问题,而且界面最终呈现也不是特别美观,还有就是打包后太大等一系列问题。

最近公司同事刚好有个相关界面开发需求,给我推荐了Python的新型Gui库,不仅可以做本地GUI程序,还可以同步生成一个Web Gui 服务,将Gui界面同步到浏览器上展示。它就是 nicegui。

NiceGui介绍

NiceGui 是一个简单易用的基于Python的Web-UI框架,其目的是使在Python中开发前端应用程序变得容易。

小编也看了下其源代码,Web相关服务/路由等是基于Python FastAPI 框架构建的。而 UI 元素基于 Vue 和 Quasar。NiceGui 带有许多现成的元素。它甚至允许不同元素之间的值绑定。可以轻松显示各种图表。

主要功能:

  • 预加载了随时可用的 GUI 元素,如按钮、标签、复选框、滑块、开关等

  • 表情符号图标、SVG 和 base64 支持

  • 提供简单的数据绑定

  • 用于刷新数据的内置定时器

  • 能够渲染 3D 场景,绘制图表

  • 可以轻松显示图像和视频

  • 它使自定义页面和布局变得容易,并且内置了对 Tailwind CSS 的支持

NiceGui的安装和使用

1、安装

使用 pip 下载 NiceGui(仅支持3.7及以上版本)

pip install nicegui

2、编写一个简单代码,测试其功能是否正常

from nicegui import ui   # 创建一个标签   ui.label('Welcome to NiceGui!')     # 创建一个按钮,设置回调函数,调用niceui的弹窗消息通知   ui.button('Click Here', on_click=lambda: ui.notify('Button Pressed'))   # niceui 运行   ui.run()

点击运行后,终端会输出web url访问地址,自动打开浏览器

NiceGUI ready to go on http://localhost:8080, and http://192.168.0.102:8080

NiceGui 常用API

1、图标和链接
  • icon() :此函数允许我们在 UI 上显示图标。要显示一个图标,我们需要提供一个图标名称。此功能依赖于 Quasar 的 QIcon。可以使用 CSS、Quasar 或 Tailwind 颜色指定颜色选项。大小选项由 classes() 方法使用 CSS 单位确定。

  • link() 此函数使我们能够将链接分配给 UI 中的文本。首先,我们指定应链接的文本,然后是相应的网站 URL。

效果展示:

2、选择元素

NiceGui 有不同的选择元素,如切换框、单选框和复选框。

  • toggle():此函数可以生成一个切换框,我们在其中通过包含值到标签的映射的字典值列表传递选项。当用户选择一个选项时,它被保存在toggle变量中。

  • radio():这类似于 toggle() 函数,但在这里我们可以选择单选选项。

  • select():此函数生成一个下拉列表以选择特定选项。与上述函数相比,此函数的输入和存储的输出值相同。

  • checkbox():当用户选中复选框时,checkbox 变量被分配一个布尔值 True。

效果展示:

在这里,我们看到了我们创建的所有选择元素。单击 Dropdown Select,出现下拉操作,允许我们选择其中一个选项。这些只是我们研究过的部分元素。NiceGui 提供了广泛的元素以在各种场景中使用。

而且 NiceGui 支持不同 UI 元素之间的绑定值,允许无缝集成。

在上面的代码中,我们使用 ui.row() 元素将两个元素(radio 和 toggle)水平分组。要将它们垂直分组,我们可以使用 ui.column()。toggle() 函数包含变量 bind_values(),它将单选选项连接到切换选项。

在上面的图片中,我们可以清楚地看到两个 UI 元素之间的值绑定。同样,bind_value() 函数能够在 NiceGUI 提供的不同 UI 元素中工作。

3、用户输入和值绑定

允许用户在 UI 中输入文本或数字数据的功能。

上面代码中的函数包括:

  • input():使用此函数时,将创建一个空文本框,用户可以在其中键入数据。它有一个名为“ label ”的变量,它告诉用户它期望的输入类型。每当用户在输入框中输入内容时,ui.label() 的 .set_text() 函数就会激活并在屏幕上显示键入的文本。

  • number():此函数的工作方式与 input() 函数类似,唯一的区别是此函数接受数字而不是文本

效果展示:

4、数据元素和图表

通过 NiceGui显示表格数据。

要显示表格,请在列列表中指定列名。每列由列表中的字典表示。包括每列的名称、标签和字段值(通常所有列都相同)。可以根据需要提供额外的键值对。

例如,“required:True”键值对确保名称列需要添加到表中的任何新元素的值。“align”:”center” 将整个行对齐到该列名称下的居中对齐方式。

接下来是行列表。行列表是包含上述列值的字典列表。这里使用字段名称,我们在字典中提供field:value对。然后使用 ui.table() 函数,我们将表格显示到 UI。在这里我们可以给表格命名。row_key 的列名包含唯一值。

效果展示:

带有 NiceGui的 Pandas DataFrame

使用 table() 函数本身可以显示 Pandas 数据。

使用 NiceGUI 在屏幕上显示图形

使用 NiceGUI 中的 pyplot() 函数,它在 UI 上显示 matplotlib 图形。

在这里,我们使用 with 命令,然后使用 ui.pyplot() 函数。我们甚至将图的大小传递给函数。

现在,在with下面,我们编写通过matplotlib绘制图形的代码。这里我们编写了一个简单的图,其中x轴包含从0到10000的值,步长为10,y轴包含它们的对数值。

代码运行时的输出将是:

结论

开发人员使用 NiceGui(一种 Python Web 框架)来创建网站应用程序。其提供了必要的工具来开发一个完整的网站,所有的前端部分都完全在 Python 中。我们甚至看到了 NiceGUI 的不同元素以及如何接受用户输入。最后,我们通过绑定值了解了我们可以在不同的 UI 元素之间进行绑定的方法。

NiceGUI:让Python变身为Web应用开发大师的神器 NiceGUI是一个功能丰富、易于使用的Python UI框架,能够在Web浏览器中展现出各种GUI元素。NiceGUI非常适用于各种场景,包括微型Web应用程序、仪表板、机器人项目、智能家居解决方案等。注意:NiceGUI支持热加载,当您修改代码时,NiceGUI会自动重新加载页面。NiceGUI是一个易于使用的基于Python的UI框架,可以在您的Web浏览器中使用。您可以创建按钮、对话框、Markdown、3D场景、图表等等。包括标签、按钮、复选框、开关、滑块、输入框、文件上传等,满足各种常见需求。 阅读详情

相关推荐

Python全局键盘监听与热键绑定实战:用keyboard库实现自动化

键盘事件监听是自动化脚本与效率工具开发中的基础技术,它通过捕获系统级按键信号,使程序能够响应用户的键盘操作。其核心原理是利用操作系统提供的钩子(Hook)机制,在驱动层或应用层拦截键盘输入流,从而实现后台静默监听。这项技术的工程价值在于打通了人机交互的关键通道,将被动执行的程序转变为能主动感知用户意图的智能助手,极大提升了操作效率与自动化水平。在应用场景上,它广泛用于自动化办公、游戏辅助、快速启动、文本扩展以及自定义工作流触发等领域。本文聚焦于Python生态,深入探讨如何利用轻量且强大的keyboard库

weixin_30911451的博客 407

使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序

介绍随着机器学习和深度学习网站应用程序的快速增长,开发人员一直在寻找新的 Web 框架,以便更轻松地构建这些网站应用程序。数据科学应用程序的普及程度已经上升,因此新的框架也在增加。开发人员创建了许多新的框架,这些框架被证明对构建这些网站应用程序很有帮助。其中一个框架就是NiceGUI。在本文中,我们将关注这个框架以及如何使用它构建简单的应用程序。学习目标了解 NiceGUI学习使用 NiceGUI...

深度学习与计算机视觉 1万+

NiceGui:Python中的轻量级GUI框架初体验

NiceGui是一个基于Python的轻量级GUI框架,专注于简洁、易用和高效。它提供了丰富的组件和布局方式,帮助开发者快速构建出美观且实用的图形用户界面。相较于其他GUI框架,NiceGui具有如下特点:轻量级:NiceGui不依赖第三方库,仅使用Python标准库即可实现GUI开发,降低了项目的复杂性和依赖性。简洁易用:NiceGui的API设计简洁明了,易于上手。同时,它支持多种布局方式,可以满足不同场景下的界面需求。

这家伙很懒,什么都没有留下 4365

Python神器NiceGUI:手把手带你从0到精通,写GUI界面从未如此简单!

Python做GUI总得折腾PyQt、Tkinter这些庞然大物,写个简单界面都像是在搬砖。忽然,我想起了。

m0_62283350的博客 1万+

避开这些坑,你的Python爬虫才能稳定爬取IEEE Xplore(含反爬策略与MongoDB存储实战)

本文详细介绍了如何构建稳定的Python爬虫系统以爬取IEEE Xplore学术论文,包括反爬策略、MongoDB存储优化和断点续传机制。通过动态等待时间算法、请求头指纹管理和会话保持策略,有效应对IEEE的反爬机制。同时,优化MongoDB数据结构和索引,提升存储效率。最后,强调法律合规与伦理考量,确保爬虫合法合规运行。

weixin_29031057的博客 1096

PyCharm启动报错急救指南:3步定位.vmoptions文件位置(Win/Mac路径详解)

本文针对PyCharm启动失败问题,提供了一份详细的急救指南。核心在于精准定位并修复关键的.vmoptions配置文件。文章通过三步法详解了在Windows和macOS系统上查找该文件的具体路径,并分析了因新旧版本冲突、破解补丁残留或参数设置错误导致启动失败的常见场景及解决办法,帮助开发者快速恢复IDE的正常工作。

weixin_28835789的博客 702

这些Python可视化工具画图真的好看,强烈推荐!

用过 Python数据分析的小伙伴都知道,Python不光能高效处理数据,还能实现各种实用且酷炫的可视化,光是制作图表的第三方库就有几十种,而且各有千秋,下面来梳理梳理。

分享Python、数据分析、人工智能前沿知识 573

【HAL库-STM】智能温控按键小风扇【胎教级教学】

硬件设备:DHT11,0.96寸oled屏,二/三/四线风扇(不挑),面包板 、f10的精英板等等。当人在的风扇面前时可以自行控制风扇,不在面前时又想开风扇就让他温控自行开启,(在这里有一个想法就是加上蓝牙和wifi控制的功能能够远程遥控,这个如果做的再全一点就要自主研发是一个多功能app,这里没有做。针对这个dht11,我一开始是卡在了这个check函数里面,一直是我给完dht11低电平和高电平后,dht11不回复我低电平和高电平,这个不是我的问题,当时代码是没毛病的,这个点一直卡着我。吐血五天实现小成品

weixin_52451652的博客 1741

【Python】这些Python可视化工具画图真的好看,强烈推荐!

Matplotlib的特点有足够的自定义空间让开发者去设计自己的图表,它把图表的每一个元素都拆解来,给到自定义函数、参数,让你去鼓捣。Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。用过 Python数据分析的小伙伴都知道,Python不光能高效处理数据,还能实现各种实用且酷炫的可视化,光是制作图表的第三方库就有几十种,而且各有千秋,下面来梳理梳理。

fengdu78的博客 561

复现报告:《多回路人机控制系统仿真及II型PIO分析》方法复现与代码实现

本文复现了谭文倩硕士论文《多回路人机控制系统仿真及II型PIO分析》中的关键方法,重点实现了频域驾驶员模型辨识和参数灵敏度分析。通过数字化提取论文图表数据,构建了结构驾驶员模型传递函数,并验证了参数变化对系统特性的影响。采用MATLAB实现了描述函数计算、模型参数辨识和灵敏度分析算法,为后续神经网络模型辨识和II型PIO研究奠定了基础。由于缺乏原始实验数据,部分结果通过数值模拟获得,但仍有效重现了论文的核心分析方法。~~~~~

huanghm88的专栏 175

【大模型】Coze AI 智能体工作流从配置到使用实战详解

Coze 扣子智能体工作流从配置到使用实战详解

congge 1万+

pywebview 入门指南:用 JavaScript、HTML 与 CSS 构建 Python 桌面 GUI

pywebview 是一个轻量级的跨平台原生 WebView 封装库,让你用纯 Python 配合 JavaScript、HTML 与 CSS 构建桌面应用,而底层窗口却由各操作系统的原生 GUI 框架驱动。本文以仓库 [docs/guide/README.md](https://link.gitcode.com/i/eabcc8f4010d24d8819e2ddaef63b48a)(官方 Gui

gitblog_00134的博客 475

计算机视觉教程1-1:透视空间与透视变换

在生活中,透视现象很常见,其物理本质是光的直线传播。由于人眼与相机在捕获图像时均存在透视现象,因此计算机几何基于透视空间进行研究。本节介绍透视变换原理

FRIGIDWINTER的博客 3092

自动化测试之:python各种测试用库

测试开发 来源:https://www.jianshu.com/p/ea6f7fb69501 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装。链接 selenium - web UI自动化测试。链接--推荐 mechanize- Python中有状态的程序化Web浏览。链接 selene - 使用Python + Ajax支持+ PageObjects + Widgets进行简明UI测试链接 hitch - 基于服务的应用程序的高级集成测试框...

luoyir1997的博客 5772

【数据集实例】CMIP6气候模式数据下载-以河东地区为例

以河东地区为例,介绍CMIP6数据下载及处理

WW、forever的博客 4947

基于Scrapy+Playwright的学术会议信息智能爬取系统实战

本文详细介绍如何使用Python构建一个高效的学术会议信息爬取系统,结合Scrapy框架和Playwright无头浏览器技术,实现对全球学术会议数据的自动化采集、清洗和存储。文章包含完整的技术方案设计、代码实现细节以及性能优化策略,可帮助读者快速掌握现代网络爬虫开发的核心技术。关键词:Python爬虫、Scrapy、Playwright、学术会议、数据采集、反爬对抗python复制下载。

2201_76125261的博客 711

【工具】Python GUI 框架选型指南 Flet vs Streamlit vs PySimpleGUI vs Kivy

其他框架只在极特殊场景才考虑。

Chandler2017的博客 1461

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python常用的可视化工具(库)

在数据分析中最好展示数据的方式就是形象地绘制对应的图像,让人能够更好地理解数据。什么样的数据、什么样的场景用什么样的图表都是有一定的规定的。这里主要分享一些比较常用的python可视化库。

githubcurry,985cs博士在读 953

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

我整理了一些Python测试的库,看一下有没有你需要的库

测试开发 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装。 selenium - web UI自动化测试。 –推荐 mechanize- Python中有状态的程序化Web浏览。 selene - 使用Python + Ajax支持+ PageObjects + Widgets进行简明UI测试 hitch - 基于服务的应用程序的高级集...

qq_41235053的博客 2171

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

python讲师金角大王_python学习day01(金角大王老师)

python学习:有幸得到金角大王的python真传,以后本人将记录学习Python的点点滴滴。1、python的介绍:引自金角大王的博客:http://www.cnblogs.com/alex3714/articles/5465198.htmlpython的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的...

weixin_35958783的博客 728

Python进阶书籍经典书有这样三本

1、Python核心编程(第3版)[Core Python Applications Programming(3rd Edition)] [美] Wesley Chun 著,孙波翔,李斌,李晗 译 “本书简洁而不失其技术深度,内容丰富全面,历史资料翔实齐全,这让本书成为学习Python的完美教程。本书易于阅读,以极简的文字介绍了复杂的案例,同时涵盖了其他同类图书中很少涵盖的历史参考资料。简而言之,本书棒极了!” ——Gloria. W “期待已久的Core Python Programming

人邮异步社区 2985

最强的中文 Python 开源资料合集!这应该是史上最全的了

点击上方“Python高校”,关注文末干货立马到手大家好,我是gao,有人问怎么学习编程,尤其是公司项目不够锻炼技术的同学,这个疑问非常大,今天分享一些适合国内同学学习的资料。其实学习...

Python爬虫和机器学习专栏 368

Python快速GUI开发:Gradio与Streamlit实战指南

事件驱动编程是现代交互式应用的核心原理,它通过响应用户操作来驱动程序流程。传统GUI框架如PyQt和Tkinter虽然控制精细,但需要大量样板代码处理布局和事件绑定,学习曲线陡峭。现代声明式GUI库通过更高层次的抽象,实现了关注点分离,让开发者能专注于业务逻辑而非界面细节。这类技术特别适用于AI模型演示和数据分析场景,能极大提升原型验证和成果展示的效率。Gradio和Streamlit作为当前主流选择,分别针对机器学习模型接口生成和数据应用仪表盘优化,帮助开发者用极简代码构建可交互Web应用,并支持便捷的打

weixin_34121282的博客 621
上一篇: 5.2k Star!一个可视化全球实时天气开源项目!
下一篇: FaceBook推出新的翻译模型Seamless!可实现跨语言交流的无缝衔接!
孜孜孜孜不倦
博客等级 码龄7年 1803粉丝 277原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孜孜孜孜不倦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值