NiceGUI `ui.table` 基础

NiceGUI ui.table 基础

ui.table 是 NiceGUI 提供的一个组件,用于在页面上展示数据表格


基本概念

官方简介

A table based on Quasar’s QTable component.

参数参考
rows:list of row objects; 行对象列表
columns:list of column objects (defaults to the columns of the first row);列对象列表(默认为第一行的列)
column_defaults:optional default column properties; 可选的默认列属性
row_key:name of the column containing unique data identifying the row (default: “id”); 包含标识行的唯一数据的列的名称(默认值:“id”)
title:title of the table; 表格标题
selection:selection type (“single” or “multiple”; default: None); 选择类型(“单”或“多”;默认值:无)
pagination:a dictionary correlating to a pagination object or number of rows per page (None hides the pagination, 0 means “infinite”; default: None).; 与分页对象或每页行数相关的字典(None隐藏分页,0表示“无限”;默认值:None)
on_select:callback which is invoked when the selection changes; 当选择更改时调用的回调
on_pagination_change:callback which is invoked when the pagination changes; 当分页更改时调用的回调

If selection is ‘single’ or ‘multiple’, then a selected property is accessible containing the selected rows.

如果 selection 为 ‘single’ 或 ‘multiple’,则可访问包含所选行的所选属性。

简介

  • columns:定义表格的列,包括列标题、数据字段映射、对齐方式等。
  • rows:定义表格的数据,每行是一个字典,键需要与 columns 中的 field 值对应。

columnsrows 的关系

  • columnsfield 指定了表格从 rows 中取值的键。
  • 如果 columns 中的 field 未定义或与 rows 数据不匹配,该列的数据会显示为空白。

columns 字段说明

必须定义的字段

  1. name

    • 唯一标识列的名称,表格内部使用。
    • 必须是字符串类型。
  2. label

    • 表头中显示的列标题。
    • 如果未定义,表头中该列将显示为空白。
  3. field

    • 指定从 rows 的哪个键中取值,绑定列与行数据。
    • 如果未定义,表格无法显示该列对应的数据。

可选字段

  1. align

    • 控制列内容的对齐方式。
    • 可选值:'left', 'center', 'right'
    • 默认值:'left'
  2. sortable

    • 是否允许对该列进行排序。
    • 类型:布尔值,默认值为 False
  3. width

    • 设置列宽,可以是像素值(如 '100px')或百分比(如 '20%')。
  4. classes

    • 自定义 CSS 类,用于控制列样式。

示例代码

以下代码展示了一个完整的表格定义,包括两列:conditionval

from nicegui import ui

# 定义表格的列
columns = [
    {
        'name': 'condition',     # 必须:唯一标识列
        'label': 'Condition',    # 必须:表头名称
        'field': 'condition',    # 必须:对应行数据的键
        'align': 'left',         # 可选:对齐方式
        'sortable': True,        # 可选:启用排序
        'width': '50%',          # 可选:列宽
    },
    {
        'name': 'val',
        'label': 'Value',
        'field': 'val',
        'align': 'center',
        'sortable': False,       # 可选:禁用排序
    },
]

# 定义表格的数据行
rows = [
    {'condition': 'a > 10', 'val': True},
    {'condition': 'b > 20', 'val': True},
    {'condition': 'c > 30', 'val': False},
]

# 创建 UI 表格

ui.table(
    columns=columns,
    rows=rows
)

ui.run()

运行效果

ConditionValue
a > 10True
b > 20True
c > 30False

常见问题

示例:未定义 field

field 是表格列与行数据绑定的关键字段。表格通过 fieldrows 中取值,如果未定义 field,表格无法知道该列需要显示哪些数据。

columns = [
    {'name': 'condition', 'label': 'Condition', 'align': 'left'},  # 缺少 field
    {'name': 'val', 'label': 'Value', 'align': 'center'},         # 缺少 field
]

结果:表头显示 ConditionValue,但行数据为空白。

正确方式

columns = [
    {'name': 'condition', 'label': 'Condition', 'field': 'condition', 'align': 'left'},
    {'name': 'val', 'label': 'Value', 'field': 'val', 'align': 'center'},
]

NiceGUI 官方文档:https://nicegui.io

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/939738.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年12月19日Github流行趋势

项目名称:ByteByteGoHq / system-design-101 项目维护者:slam, LombardiDaniel, Stephanvs, alastairp, lucasberti 等项目介绍:使用视觉和简单术语解释复杂的系统。帮助你准备系统设计面试。项目star数:66,527项目fork数&#xf…

Elasticsearch:什么是信息检索?

信息检索定义 信息检索 (IR) 是一种有助于从大量非结构化或半结构化数据中有效、高效地检索相关信息的过程。信息(IR)检索系统有助于搜索、定位和呈现与用户的搜索查询或信息需求相匹配的信息。 作为信息访问的主要形式,信息检索是每天使用…

机械鹦鹉与真正的智能:大语言模型推理能力的迷思

编者按: 大语言模型真的具备推理能力吗?我们是否误解了"智能"的本质,将模式匹配误认为是真正的推理? 本文深入探讨了大语言模型(LLMs)是否真正具备推理能力这一前沿科学问题,作者的核…

day-21 内核链表以及栈

1.昨日作业 1.删除指定节点 找到删除就完事了,双向可以停在删除处。 /***************************** 功能:删除指定结点(通过姓名)* 参数:phead;oldname; * 返回:成功0,失-1&…

深入剖析MyBatis的架构原理

架构设计 简要画出 MyBatis 的架构图 >> ​​ Mybatis 的功能架构分为哪三层? API 接口层 提供给外部使用的接口 API,开发人员通过这些本地 API 来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。MyBatis 和数据库的…

Figma插件:提高设计工作效率

Figma作为一款当前流行的设计工具,其受欢迎程度的飙升与2020年疫情后的远程工作趋势密切相关。许多设计团队开始转向线上办公模式,这时,Figma的协作功能就显得尤为重要,促使众多设计师从Sketch等传统设计软件转向Figma。 Figma是…

Hive其一,简介、体系结构和内嵌模式、本地模式的安装

目录 一、Hive简介 二、体系结构 三、安装 1、内嵌模式 2、测试内嵌模式 3、本地模式--最常使用的模式 一、Hive简介 Hive 是一个框架,可以通过编写sql的方式,自动的编译为MR任务的一个工具。 在这个世界上,会写SQL的人远远大于会写ja…

Qt之自定义标题栏拓展(十)

Qt开发 系列文章 - user-defined-titlebars(十) 目录 前言 一、方式一 1.效果演示 2.创建标题栏类 3.可视化UI设计 4.定义相关函数 5.使用标题栏类 二、方式二 1.效果演示 2.创建标题栏类 3.定义相关函数 1.初始化函数 2.功能函数 3.窗口关…

鱼跃医疗获评2024年国家级“绿色工厂”,以绿色制造树立行业标杆

近日,工业和信息化部公布了2024年度绿色制造名单,鱼跃医疗凭借在绿色制造和可持续发展方面的卓越表现,成功入选并获评国家级“绿色工厂”。 “绿色工厂”是工信部为贯彻落实国家《工业绿色发展规划》,加快推动绿色制造体系建设&a…

【数据集】玻璃门窗缺陷检测数据集3085张5类YIOLO+VOC格式

数据集格式:VOC格式YOLO格式 压缩包内含:3个文件夹,分别存储图片、xml、txt文件 JPEGImages文件夹中jpg图片总计:3085 Annotations文件夹中xml文件总计:3085 labels文件夹中txt文件总计:3085 标签种类数&am…

一、LRU缓存

LRU缓存 1.LRU缓存介绍2.LRU缓存实现3.LRU缓存总结3.1 LRU 缓存的应用3.2 LRU 缓存的优缺点 1.LRU缓存介绍 LRU是Least Recently Used 的缩写,意为“最近最少使用”。它是一种常见的缓存淘汰策略,用于在缓存容量有限时,决定哪些数据需要被删…

【视频生成模型】——Hunyuan-video 论文及代码讲解和实操

🔮混元文生视频官网 | 🌟Github代码仓库 | 🎬 Demo 体验 | 📝技术报告 | 😍Hugging Face 文章目录 论文详解基础介绍数据预处理 (Data Pre-processing)数据过滤 (Data Filtering)数据标注 (Data…

【C++】函数计算题解论

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述💯思路解析3.1 函数的递归定义3.2 边界条件控制3.3 记忆化搜索 💯C实现代码💯添加解释💯小结 💯前言 在…

低温高海拔大载重无人机吊运技术详解

低温高海拔大载重无人机吊运技术是一项复杂而先进的技术,它结合了无人机的飞行控制、吊装系统的操作以及特殊环境下的适应性等多个方面。以下是对该技术的详细解析: 一、无人机基础知识与结构特点 低温高海拔大载重无人机通常采用旋翼设计,…

Java设计模式 —— 【结构型模式】适配器模式(类的适配器、对象适配器、接口适配器)详解

文章目录 基本介绍一、类的适配器二、对象适配器三、接口适配器总结 基本介绍 生活中有很多例子: 不同国家的插座接口不同,需要转换器;家用电源220V,手机只接受5V充电,需要转换器;读卡器,拓展…

系列2:基于Centos-8.6Kubernetes 集成GPU资源信息

每日禅语 自省,就是自我反省、自我检查,自知己短,从而弥补短处、纠正过失。佛陀强调自觉觉他,强调以达到觉行圆满为修行的最高境界。要改正错误,除了虚心接受他人意见之外,还要不忘时时观照己身。自省自悟之…

leetcode17:电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits "23" 输出&#…

OpenHarmony-3.HDF Display子系统(6)

Display 子系统 1.Display驱动模型介绍 当前操作系统和 SOC 种类繁多,各厂商的显示屏器件也各有不同,随之针对器件的驱动代码也不尽相同,往往是某一款器件驱动,只适用于某单一内核系统或 SOC,如果要迁移到其他内核或者…

AQS源码学习

一、park/unpark阻塞唤醒线程 LockSupport是JDK中用来实现线程阻塞和唤醒的工具。使用它可以在任何场合使线程阻塞,可以指定任何线程进行唤醒,并且不用担心阻塞和唤醒操作的顺序,但要注意连续多次唤醒的效果和一次唤醒是一样的。JDK并发包下…

GUI07-学工具栏,懂MVC

MVC模式,是天底下编写GUI程序最为经典、实效的一种软件架构模式。当一个人学完菜单栏、开始学习工具栏时,就是他的一生中,最适合开始认识 MVC 模式的好时机之一。这节将安排您学习: Model-View-Controller 模式如何创建工具栏以及…