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

这篇具有很好参考价值的文章主要介绍了使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

随着机器学习和深度学习网站应用程序的快速增长,开发人员一直在寻找新的 Web 框架,以便更轻松地构建这些网站应用程序。

数据科学应用程序的普及程度已经上升,因此新的框架也在增加。开发人员创建了许多新的框架,这些框架被证明对构建这些网站应用程序很有帮助。其中一个框架就是NiceGUI。在本文中,我们将关注这个框架以及如何使用它构建简单的应用程序。

学习目标
  • 了解 NiceGUI

  • 学习使用 NiceGUI 编写基本元素

  • 了解值绑定的工作原理

  • 使用 NiceGUI 在 UI 中显示数据

  • 使用 NiceGUI 构建应用程序

目录

  • 介绍

  • 什么是 NiceGUI?

  • 安装 NiceGUI

  • NiceGUI 的基本元素

  • 用户输入和值绑定

  • 数据元素和图表

    • 带有 NiceGUI 的 Pandas DataFrame

  • 用例和应用程序

  • 结论

什么是 NiceGUI?

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

NiceGUI Framework 的 UI 元素基于 Vue 和 Quasar。NiceGUI带有许多现成的元素。它甚至允许不同元素之间的值绑定。NiceGUI 可以轻松显示各种图表。它的开发人员选择在 Fast API Framework 之上构建它,因为它具有快速的性能和用户友好的界面。

NiceGUI 中的样式随着 CSS、Tailwind 和 Quasar 的变化而变化。默认情况下,它允许自定义样式。使用 NiceGUI 构建从短脚本到仪表板再到完整的机器人项目,甚至是机器学习网站应用程序。

一些功能包括:

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

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

  • 提供简单的数据绑定

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

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

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

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

安装 NiceGUI

像使用 pip 的其他普通 Python 包一样下载 NiceGUI。

python3 -m pip install nicegui

请注意,NiceGUI 甚至提供了一个 Docker Image 来测试其功能,而无需将其下载到机器上。让我们看一些示例代码:

from nicegui import ui

ui.label('Welcome to NiceGUI!')
ui.button('Click Here', on_click=lambda: ui.notify('Button Pressed'))

ui.run()

要使用 NiceGUI,我们需要导入库nicegui。我们将在这里使用nicegui的三个函数

  • **label()**:使用此函数在 UI 上显示文本

  • **button()**:此函数用于为 UI 创建可单击的按钮。

  • **notify()**:底部的弹出窗口将显示此函数中编写的内容。

让我们运行代码并查看下面的输出

使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言

该应用程序可以从端口 8080 访问。我们看到这里有一个按钮 Click Here。单击该按钮后,会显示一个弹出窗口,告知按钮已按下

NiceGUI 的基本元素

在本节中,我们将研究一些我们将使用 NiceGUI 框架创建的基本元素。

图标和链接

让我们从显示图标和将网站链接到 UI 中的文本开始

from nicegui import ui

ui.label('Display Icon')
ui.icon('fingerprint', color='primary').classes('text-5xl')
ui.link('NiceGUI on GitHub', 'https://github.com/zauberzeug/nicegui')

ui.run()

从上面的代码创建以下函数:

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

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

运行代码将产生以下输出

使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言

我们看到屏幕上显示了指纹图标。同样点击“GitHub 上的 NiceGUI”,将我们重定向到 NiceGUI 的 GitHub 页面。

选择元素

NiceGUI 有不同的选择元素,如切换框、单选框和复选框。下面的代码包含从 NiceGUI 导入的所有这些元素。

from nicegui import ui

ui.label('Toggle Box')
toggle = ui.toggle([1, 2, 3], value=1)

ui.label('Radio Selection')
radio = ui.radio(["one","two","three"], value=1).props('inline')

ui.label('Dropdown Select')
select = ui.select(["red","blue","green"], value=1)

ui.label('Check Box')
checkbox = ui.checkbox('check me')

ui.run()

上面代码中的函数包括:

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

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

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

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

使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言

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

用户输入和值绑定

在本节中,我们将了解允许用户在 UI 中输入文本或数字数据的功能。

from nicegui import ui

ui.input(label='Text',
         on_change=lambda e: text_input.set_text('Your Input: ' + e.value))
text_input = ui.label()

ui.number(label='Number', value=3.1415, format='%.2f',
          on_change=lambda e: number_input.set_text('Your Input: ' + str(e.value)))
number_input = ui.label()

ui.run()

上面代码中的函数包括:

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

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

代码运行时,将产生以下输出

使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言

探索 NiceGUI 中的 UI 元素

在上图中,当用户输入输入字段时,用户的输入会显示在屏幕上。NiceGUI 支持不同 UI 元素之间的绑定值,允许无缝集成。让我们探讨一个例子。

from nicegui import ui

ui.label("Value Bindings")

with ui.row():
    radio1 = ui.radio([1, 2, 3], value=1).props('inline')
    toggle = ui.toggle({1: 'A', 2: 'B', 3: 'C'}).props('inline').bind_value(radio1, 'value')

ui.run()

在上面的代码中,我们使用 ui.row() 元素将两个元素(radio 和 toggle)水平分组。要将它们垂直分组,我们可以使用 ui.column()。toggle() 函数包含变量 bind_values(),它将单选选项连接到切换选项。例如,在收音机中选择 1 会将开关切换到 A,而选择 2 会将其切换到 B。

使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言

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

数据元素和图表

在本节中,我们将看到 NiceGUI 提供的数据元素。我们将探讨如何使用 NiceGUI 在 UI 上显示表格和图表。首先,我们将从通过 NiceGUI 显示表格数据开始。显示它的代码将是:

from nicegui import ui

columns = [
    {'name': 'Name', 'label': 'Name', 'field': 'Name', 'required': True, 'align': 'center'},
    {'name': 'Employee-ID', 'label': 'Employee-ID', 'field': 'Employee-ID'},
    {'name': 'experience', 'label': 'experience', 'field': 'experience'}
    ]
rows = [
    {'Name': 'Akash', 'Employee-ID':1230, 'experience': 5},
    {'Name': 'Karen', 'Employee-ID': 1245, 'experience': 10},
    {'Name': 'Thanish', 'Employee-ID': 1980, 'experience': 9},
    {'Name': 'Samuel', 'Employee-ID': 1120, 'experience': 8},
    ]

ui.table(title='Employee Data',columns=columns, rows=rows, row_key='Name')

ui.run()

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

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

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

使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言
带有 NiceGUI 的 Pandas DataFrame

我们甚至可以使用 NiceGUI 显示 Pandas Dataframe。使用 table() 函数本身可以显示 Pandas 数据。

import pandas as pd
from nicegui import ui

data = pd.DataFrame(data={'Name': ["Karan", "Shoaib"], 'Role': ["Developer", "Designer"]})
ui.table(
    columns=[{'name': column, 'label': column, 'field': column} for column in data.columns],
    rows=data.to_dict('records'),
)

ui.run()
使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言

现在我们将看看如何使用 NiceGUI 在屏幕上显示图形。使用 NiceGUI 函数,我们可以在屏幕上显示通过 matplotlib 绘制的图。为此,我们使用 NiceGUI 中的 pyplot() 函数,它在 UI 上显示 matplotlib 图形。代码将是:

import matplotlib
import numpy
from nicegui import ui

with ui.pyplot(figsize=(3, 2)):
    x = numpy.linspace(0.0, 10000.0, 10)
    y = numpy.log(x)
    matplotlib.pyplot.title('Log Graph')
    matplotlib.pyplot.plot(x, y, '-')

ui.run()

在这里,我们使用 with 命令,然后使用 ui.pyplot() 函数。我们甚至将图的大小传递给函数。现在,在with下面,我们编写通过matplotlib绘制图形的代码。这里我们编写了一个简单的图,其中x轴包含从0到10000的值,步长为10,y轴包含它们的对数值。代码运行时的输出将是:

使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序,python,开发语言

你可以在上面的屏幕上看到该图。使用 NiceGUI,我们不仅可以显示 matplotlib 图形,我们还可以显示通过 Plotly 制作的图形。

用例和应用程序

NiceGUI 类似于其他 Web 框架,可以在不同的开发场景中提供帮助,例如:

  • 机器学习 UI:凭借其众多元素,NiceGUI 成为为机器学习应用程序创建前端部件的最佳库之一。在处理需要大量用户输入的 ML 应用程序时,NiceGUI 提供的不同选择元素将真正派上用场

  • 快速原型制作:无需编写 HTML、CSS 或 Javascript 文件,并且能够完全在 NiceGUI 中编写从显示文本到选择框再到图形的所有内容,从而减少了开发快速原型的大量工作。NiceGUI 提供的大量元素有助于创建成熟的工作原型。

  • 仪表板应用程序: NiceGUI 允许开发人员通过其图表元素轻松显示不同的图表。需要注意的一件好事是 NiceGUI 甚至可以显示 3D 场景。它甚至带有进度条来展示数据的加载。它具有不同的数据元素,可以在屏幕上显示不同类型的 Python 数据类型。

结论

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

本文的一些要点包括:

  • NiceGUI 带有不同的即用型 UI 元素。

  • 它为用户提供创建多页面网站的功能。

  • NiceGUI 内置了数据绑定。

  • 基于 FastAPI 将内容提供给网络。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓文章来源地址https://www.toymoban.com/news/detail-530253.html

到了这里,关于使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NICEGUI---ROS开发之中常用的GUI工具

    对于ROS来说,如果不具备一定知识的人员来使用这些我们写的算法,如果说没有交互,这会让用户使用困难,所以我们需要使用GUI来完成友善的数据交互,传统的GUI方法一般有PYQT这类GUI方法,但是这类GUI工具上手门槛较高,也不太适合快速且敏捷的可视化界面开发。NiceGUI 是

    2024年02月16日
    浏览(36)
  • Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO

    官网:https://streamlit.io/ github:https://github.com/streamlit/streamlit API 参考:https://docs.streamlit.io/library/api-reference 最全 Streamlit 教程:https://juejin.cn/column/7265946243196436520 Streamlit-中文文档:https://github.com/wanghanbinpanda/Streamlit-Documentation-Chinese/blob/main/README.md 框架对比:Gradio、Streamlit 和

    2024年02月01日
    浏览(49)
  • 《零基础入门学习Python》第073讲:GUI的终极选择:Tkinter10

    我们不难发现,几乎每一个应用程序都有一些相同的地方,比如说:标题栏、状态栏、边框、滚动条、工作区。还有的就是 菜单。 传统的菜单有大家熟悉的 File,Edit,Help等,点开之后,是下拉菜单,今天我们就来学习使用 tkinter 如何制作这样子的菜单。tkinter 提供了一个叫

    2024年02月15日
    浏览(45)
  • 《零基础入门学习Python》第070讲:GUI的终极选择:Tkinter7

    上节课我们介绍了Text组件的Indexs 索引和 Marks 标记,它们主要是用于定位,Marks 可以看做是特殊的 Indexs,但是它们又不是完全相同的,比如在默认情况下,你在Marks指定的位置中插入数据,Marks 的位置会自动发生改变, 因为Marks 认它后面的“那个家伙”,当 Marks 前面的数据

    2024年02月15日
    浏览(39)
  • Python GUI框架---- PySide6安装与使用 - 打包部署

    安装Python和PySide6 :首先,确保已经安装了Python和PySide6 。你可以从Python官方网站(https://www.python.org)下载并安装Python,然后使用pip命令安装PySide6 。 设计GUI界面:使用Qt Designer工具来设计GUI界面。Qt Designer是一个可视化的界面设计工具,可以帮助你创建和布局GUI界面。你可以

    2024年04月09日
    浏览(40)
  • Python GUI应用程序开发之wxPython库详解

      wxPython是一个强大的跨平台GUI工具包,它使用Python编程语言开发,提供了丰富的控件功能。如果你是一名Python开发者,而且希望创建一个功能齐全的桌面应用程序,那么wxPython是一个值得考虑的选择。wxPython是wxWidgets C++库的Python绑定版本,它支持各种操作系统,包括Windows、

    2024年02月05日
    浏览(34)
  • 提升Python代理程序性能的终极解决方案:缓存、连接池和并发

    在开发Python代理程序时,优化性能是至关重要的。本文将为你介绍一套终极解决方案,通过缓存、连接池和并发处理等技术,极大地提升Python代理程序的效率和稳定性。 游戏国内地更换虚拟含ip地址数据库地区 1.缓存技术 缓存是 .0-*-+69+6ES2 0一种重要的性能优化技术,通过存

    2024年02月12日
    浏览(30)
  • 极速Python编程:利用缓存加速你的应用程序

    在软件开发中,缓存是一种常用的技术,用于提高系统性能和响应速度。Python提供了多种缓存技术和库,使我们能够轻松地实现缓存功能。本文将带您从入门到精通,逐步介绍Python中的缓存使用方法,并提供实例演示。 缓存基础知识 什么是缓存 缓存的工作原理 缓存的优势和

    2024年02月16日
    浏览(42)
  • Python GUI之tkinter的皮肤(ttkbootstrap)打造出你的窗口之美

    tkinter是python自带的标准gui库,对于我们自己日常做一些小程序出来给自己使用是非常不错的。因为tkinter相比较其它强大的gui库(PyQT,WxPython等等)而言要简单、方便、学起来也容易得很多,基本上两三天就能学会,所以非常是nice的。但是喃,它做出来的界面,如果你是没有

    2024年02月02日
    浏览(42)
  • 6种打包Python代码的方法,让你的程序变成exe应用

    Python是一种高级编程语言,它具有易学易用、跨平台等优点,因此在开发中得到了广泛的应用。 然而,Python代码需要在Python解释器中运行,这对于一些用户来说可能不太方便。 因此,将Python代码打包成可执行文件(exe)是一种很好的解决方案。 本文将介绍6种将Python代码打包

    2024年01月18日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包