网站首页 > 技术教程 正文
这是我的第237篇原创文章。
一、引言
NiceGui 是一个轻量级的 Python 前端框架,旨在简化用户界面的创建。它侧重于提供简单、直观的界面,特别适用于小型项目和快速原型设计。
然而,NiceGui 并不是一个专为构建复杂项目而设计的框架。对于大型、复杂的项目,可能需要更强大的前端框架,例如 React、Vue.js 或 Angular。这些框架提供更多的功能、更好的组件化和更强大的状态管理,使得处理大规模应用变得更加容易。
二、实现过程
2.1 组件介绍
ui.card():创建一个卡片(card)组件。卡片是一种常见的界面元素,用于包裹内容并提供视觉上的区分,通常用于显示相关的信息或功能。
ui.button():创建一个按钮组件,按钮是用户界面中常用的交互元素,用户可以点击按钮来触发特定的操作或事件。
ui.tooltip():创建一个工具提示(tooltip)组件,工具提示通常用于提供额外的信息或说明,当用户将鼠标悬停在特定元素上时显示。
ui.separator():创建一个分隔符 (separator)。分隔符通常用于在用户界面中创建视觉上的分隔线或间隔,以帮助组织内容或增加可读性。
ui.row():创建一个水平排列的行组件。通过调用 ui.row() 函数,可以将其他界面组件水平排列在同一行上,从而实现更灵活的布局和界面设计。
ui.aggrid():用于创建一个 Ag-Grid 表格组件。Ag-Grid 是一个功能强大的 JavaScript 表格库,用于在 Web 应用程序中展示和处理大量数据。
ui.notify():创建一个通知(notification)组件,通知通常用于向用户显示重要信息、警告或成功消息。
ui.label():创建一个标签(label)组件,用于显示文本内容或信息。
ui.log():创建一个日志(log)组件,用于显示应用程序的日志信息或其他文本输出。
ui.button():创建一个按钮(button)组件,用户可以点击按钮执行特定的操作或触发事件。
ui.dialog():创建一个对话框(dialog)组件,用于显示消息、警告或其他通知,并与用户进行交互。
2.2 示例代码
from nicegui import ui
def build_ui():
global orgText, countText, grid
orgText = ui.label(getOrgAndBranchText())
countText = ui.label(getRepoCountText())
tableData = getTableData()
grid = ui.aggrid({
'defaultColDef': {'flex': 1},
'columnDefs': [
{'headerName': 'ID', 'field': 'id', 'checkboxSelection': True, 'flex': 1},
{'headerName': '仓库名', 'field': 'name', 'filter': 'agTextColumnFilter', 'floatingFilter': True, 'flex': 2},
{'headerName': 'SPEC 版本', 'field': 'specVersion', 'filter': 'agTextColumnFilter', 'floatingFilter': True,
'flex': 2},
{'headerName': '上游版本', 'field': 'upstreamVersion', 'filter': 'agTextColumnFilter', 'floatingFilter': True,
'flex': 2},
{'headerName': '上游地址', 'field': 'upstreamURL', 'filter': 'agTextColumnFilter', 'floatingFilter': True,
'flex': 4},
{'headerName': '采集器', 'field': 'method', 'filter': 'agTextColumnFilter', 'floatingFilter': True, 'flex': 1},
{'headerName': '上次更新', 'field': 'lastUpdate', 'filter': 'agTextColumnFilter', 'floatingFilter': True,
'flex': 2},
],
'rowData': tableData,
'rowSelection': 'multiple',
}).style('height: 600px')
ui.separator()
with ui.row():
with ui.card():
with ui.row():
with ui.button('抓取数据索引', on_click=fetchDataList):
ui.tooltip('抓取当前组织下的仓库列表').classes('bg-grey text-body2')
with ui.button('抓取 spec 文件', on_click=fetchSpecFile):
ui.tooltip('抓取当前数据库中所有包的 spec 文件').classes('bg-grey text-body2')
with ui.button('解析 spec 文件', on_click=fetchRepoData):
ui.tooltip('解析 spec 文件中的上游信息、版本号').classes('bg-grey text-body2')
with ui.card():
with ui.row():
with ui.button('抓取软件包上游数据', on_click=fetchUpstreamData).classes('bg-green'):
ui.tooltip('从上游抓取软件包的版本号').classes('bg-grey text-body2')
with ui.button('搜索未知软件包', on_click=searchUnknownPackage).classes('bg-green'):
ui.tooltip('搜索未抓取到的软件的上游').classes('bg-grey text-body2')
with ui.card():
with ui.row():
ui.button('导出 nvchecker TOML', on_click=exportNvchecker).classes('bg-teal')
ui.button('导出 openEuler Advisor YAML', on_click=exportOpenEuler).classes('bg-teal')
with ui.card():
with ui.row():
ui.button('刷新数据', on_click=updateUIText).classes('bg-grey')
def getOrgAndBranchText():
pass
def getRepoCountText():
pass
def getTableData():
pass
def fetchDataList():
pass
def fetchSpecFile():
pass
def fetchRepoData():
pass
def fetchUpstreamData():
pass
def searchUnknownPackage():
pass
def exportNvchecker():
pass
def exportOpenEuler():
pass
def updateUIText():
pass
if __name__ in {"__main__", "__mp_main__"}:
build_ui()
ui.run(host="127.0.0.1", port=8081,
title='Upstream-Observer GUI', favicon='', language='zh-CN')
三、结果
浏览器输入:127.0.0.1:8080
作者简介:
读研期间发表6篇SCI数据算法相关论文,目前在某研究院从事数据算法相关研究工作,结合自身科研实践经历不定期持续分享关于Python、数据分析、特征工程、机器学习、深度学习、人工智能系列基础知识与案例。致力于只做原创,以最简单的方式理解和学习,关注gzh:数据杂坛,获取数据和源码学习更多内容。
原文链接:
猜你喜欢
- 2024-09-25 工具推荐:dismap 快速资产发现和识别工具
- 2024-09-25 谷歌优化Chrome全局媒体控件 调整专辑封面尺寸
- 2024-09-25 分享几个优质的油猴脚本 油猴脚本推荐排行2020
- 2024-09-25 电商平台被入侵,黑客通过图片盗取电商平台用户隐私信息
- 2024-09-25 网站地址前的小图标怎么添加 网站后面加地址后缀
- 2024-09-25 秒开WebView?Android性能优化全攻略
- 2024-09-25 Zotero文献管理 | 添加文献检索引擎(附下载)
- 2024-09-25 Go 每日一库之 negroni 每日一占
- 2024-09-25 这5个好玩又实用的在线工具,你还不收藏吗?
- 2024-09-25 饿了么更新品牌色,从深蓝变浅蓝 饿了么色彩搭配分析
你 发表评论:
欢迎- 05-1613步震撼淘宝大促闪光裂纹破墙立体字PS制作教程
- 05-16AI教程 | 绘制扁平的萌萌哒图标
- 05-160基础学平面设计所需了解的基础常识汇总
- 05-16自学平面设计需要多长时间?十六年职业设计总监告诉你
- 05-16平面设计都要学习哪些内容?
- 05-16李涛PS教程 高手之路PS教程 合成教程 —制作一个小星球
- 05-16Illustrator实例教程:制作炫酷的漩涡效果
- 05-16Illustrator实例教程:利用混合工具制作一朵炫酷的花
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)