网站首页 > 技术文章 正文
通常在各种GUI界面中select checkbox raido text label button
如果我们学习过VB或者html这类知识,可能会理解会是选择框,文本框,单选、复选框,即使没有学习过也是经常用过的
- select下拉选择
- label:标签文本
- text/ textarea :输入文本
- checkbox复选框,通常的行为是打对勾 √
同样我们在word或者excel/vba中也会用到类似的组件,概念基本一致,只是表现形式不一样。
NiceGUI中的组件有哪些
Basic Elements
- Label
- Icon
- Avatar
- Link
- Button
- Badge
- Toggle
- Radio Selection
- Dropdown Selection
- Checkbox
- Switch
- Slider
- Joystick
- Text Input
- Textarea
- Number Input
- Knob
- Color Input
- Color Picker
- Date Input
- Time Input
- File Upload
- Chat Message
- Generic Element
- Markdown and HTML
from nicegui import ui
ui.label('some label')
ui.run()
我们可以看到这个 ui.label('some label')最后展示的是一个html页面
加上一个icon
加上两个图标icon
增加一个按钮button
ui.button('Click me!', \
on_click=lambda: ui.notify(f'You clicked me!'))
加一个按钮button点击一次增加一个气泡数
with ui.button('Click me!', on_click=lambda: badge.set_text(int(badge.text) + 1)):
badge = ui.badge('0', color='red').props('floating')
ui.run()
实际上启动app.run后,nicegui应该是启动了一个服务器用来展示最终的元素
将python代码中描述的label,button等元素转换成html中的元素通过浏览器去分析这些结构我们可以发现
- ui.label对象变成了div
- ui.button转换成了html中的button元素
有有可能会问为什么不直接用vue去写页面,其实他就是用pyton代码去描述了一种结构nicegui负责将python描述的界面元素用html的方式展现出来,其实vue最终也是htmlcssjavascript,只不过对于我这种不擅长前端的人来说,它屏蔽了很多这样的知识。
它其实的目的写用nicegui的人不用关心界面是如何生成的,不然就变成的网页 +python的方式,这与flask django就没有太大的区别了,区非是前端用vue ,还是jquery还是单纯的html javascript
完整的代码效果如下
'''
Created on 2023 8 27
@author: admin
'''
from nicegui import ui
ui.label('some label')
ui.icon('thumb_up', color='primary')\
.classes('text-5xl')
ui.avatar('favorite_border', text_color='grey-11', square=True)
ui.avatar('img:https://nicegui.io/logo_square.png', color='blue-2')
ui.button('Click me!', \
on_click=lambda: ui.notify(f'You clicked me!'))
with ui.button('Click me!', on_click=lambda: badge.set_text(int(badge.text) + 1)):
badge = ui.badge('0', color='red').props('floating')
ui.run()
ui.run()
完整的演示视频
猜你喜欢
- 2025-08-31 俊学(17):腾讯会议PC端使用指南_腾讯会议电脑版使用说明
- 2025-05-25 实现《英雄联盟》 PLAY 按键
- 2025-05-25 我的第一个Electron应用
- 2025-05-25 ffplay.c源码分析【3】
- 2025-05-25 wxPython - 一些扩展按钮控件
- 2025-05-25 VC界面库BCGControlBar v23.1新增支持Animation
- 2025-05-25 从jQuery背景出发思考AngularJS编程思维
- 2025-05-25 韩国推出“抗日娱乐游戏”,日本网民感慨:改善两国关系恐怕将更难了
- 2025-05-25 AutoAnimate,一款零配置 JavaScript 过渡动画库
- 2024-07-26 神了!原来chrome浏览器要这样用(googlechrome浏览器怎么用)
- 最近发表
-
- 架构师必备技能之JVM调优_jvm调优方案
- 记一次简单的Java内存排查_java内存检测工具
- 大量类加载器创建导致诡异FullGC_类加载器加载程序运行所需要的所有类,由网络系统导入
- 频繁Full GC如何优化?_频繁fullgc如何处理
- Java JAR 启动内存参数配置指南:从基础设置到性能优化
- Java堆外内存溢出紧急处理实战:Linux命令定位与Spring Boot解决
- 通过JVM定位和分析一次生产案例_jvm如何定位一个对象
- Java内存溢出紧急处理:10个必知的Linux命令快速定位OOM
- 说一下JDK的监控和 线上处理的一些case
- 那个小白还没搞懂内存溢出,只能用案例说给他听了
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)