from typing import Dict
import flet
from flet import AppBar, ElevatedButton, Page, Text, View, colors class view_fam:
def __init__(self, page: Page) -> None:
self.vs: Dict[str, View] = {}
""" 页页集 """ vv = [
ElevatedButton(
f"页{i}",
on_click=lambda x: page.go(f"/pg_{x.control.data}"),
data=i,
)
for i in range(10)
]
vv.insert(0, AppBar(title=Text("主页"), bgcolor=colors.SURFACE_VARIANT)) self.vs["main"] = View("/", vv) # 主页 for i in range(10):
self.vs[f"/pg_{i}"] = View(
f"/pg_{i}",
[
AppBar(title=Text(f"页{i}"), bgcolor=colors.BLUE_ACCENT_100),
ElevatedButton(
"上一页",
on_click=lambda x: page.go(f"/pg_{x.control.data-1}"),
disabled=i <= 0,
data=i,
),
ElevatedButton("去主页", on_click=lambda _: page.go("/")),
ElevatedButton(
"下一页",
on_click=lambda x: page.go(f"/pg_{x.control.data+1}"),
disabled=i >= 9,
data=i,
),
],
) def main(page: Page):
page.title = "Routes Example"
vvs = view_fam(page)
"""页面的集合""" def route_change(route):
"""
当收到信号,要改变页面时,用这个来决定具体要加载的页面\n
实际上,当收到回退信号时,并不能后退到上一个页面,而是直接加载主页
"""
if page.route == "/":
if page.views[0].route == "/":
return
else: page.views.clear() page.views.append(vvs.vs["main"])
page.update()
else:
if page.route == page.views[0].route:
pass
else: v = vvs.vs.get(page.route, None)
if v is not None:
page.views.clear()
page.views.append(v)
page.update() def view_pop(view): if len(page.views) == 0:
page.views.append(vvs.vs["main"])
elif page.views[0].route == "/":
pass
else:
page.views.clear()
page.views.append(vvs.vs["main"]) page.go("/") page.on_route_change = route_change
page.on_view_pop = view_pop
page.go(page.route) # flet.app(target=main, view=flet.WEB_BROWSER)
flet.app(target=main)

[FLET] 02 route 测试的更多相关文章

  1. echarts雷达图点击事件 包含(2.x,3.85,4.02)测试

    最近看见别人问的问题,点击雷达图的拐点,获取点击数据的问题,直接上代码. echarts 2x 的点击事件 echarts配置问题:https://www.douban.com/note/509404 ...

  2. [Laravel] 02 - Route and MVC

    前言 一.良心资料 英文 Laravel 框架:https://laravel.com/ 教程:https://laracasts.com/series/ laravel-from-scratch-2 ...

  3. 02 - Unit011:Spring AOP

    Spring AOP 面向切面(儿)编程(横切编程) Spring 核心功能之一 Spring 利用AspectJ 实现. 底层是利用 反射的动态代理机制实现的 其好处: 在不改变原有功能情况下, 为 ...

  4. php简单测试slim框架的功能

    php简单测试slim框架的功能 监听主路径/ $app->get( '/', function () { $template = <<<EOT<!DOCTYPE htm ...

  5. [Laravel] 14 - REST API: Laravel from scratch

    前言 一.基础 Ref: Build a REST API with Laravel API resources Goto: [Node.js] 08 - Web Server and REST AP ...

  6. LVS负载均衡常用的工作模式有NAT、DR、和TUN三种,其中DR模式性能最为优越,使用最为广泛。

    一.安装LVS LVS的编译安装参考本站文章:http://www.linuxe.cn/post-192.html,对于LVS这种功能性软件,在生产中用yum安装也是没有问题的. 1 yum inst ...

  7. autofs自动挂载

    autofs是根据需要自动挂载,默认5分钟不使用自动卸载挂载点!nfs,smb,iso,sd*的挂载 环境:RHEL6.5/Centos6.5    172.24.0.25 01.安装autofs y ...

  8. NFS简单使用

    NFS网络文件系统(Network File System),由Sun公司开发,从名字上就能够知道这个服务是通过网络的方式来共享文件系统,目前RHEL 6上使用的版本为NFSv4,提供有状态的连接,追 ...

  9. WebService入门

    1.什么是web服务: web服务是一种可以用来解决跨网络应用集成问题的开发模式,这种模式为实现"软件即服务"提供了技术保障. 2.web服务的三个核心 2.1  SOAP SOA ...

  10. 微冷的雨ASP.NET MVC之葵花宝典(MVC)

    微冷的雨ASP.NET MVC之葵花宝典 By:微冷的雨 第一章 ASP.NET MVC的请求和处理机制. 在MVC中: 01.所有的请求都要归结到控制器(Controller)上. 02.约定优于配 ...

随机推荐

  1. SQL Server实战四:查询数据库的数据

      本文介绍基于Microsoft SQL Server软件,实现数据库表中多种数据查询方法的具体操作. 目录 1 指定列或全部列查询--查询S表学生记录 2 指定列或全部列查询--查询学生姓名与出生 ...

  2. WEB服务与NGINX(7)-实现自定义错误页面

    1. 自定义错误页面 error_page code ... [=[response]] uri; 定义错误页,以指定的响应状态码进行响应,此指令由ngx_http_index_module模块提供 ...

  3. 远程控制软件 TeamViewer 的局限性和替代方案

    TeamViewer 公司创建于2005年,总部位于德国,客户遍及全球,其中企业用户居多,其各方面性能都很不错,但价格却非常贵.针对个人用户,TeamViewer 提供免费版软件,但时不时会提示&qu ...

  4. 基于Python实现MapReduce

    一.什么是MapReduce 首先,将这个单词分解为Map.Reduce. Map阶段:在这个阶段,输入数据集被分割成小块,并由多个Map任务处理.每个Map任务将输入数据映射为一系列(key, va ...

  5. vue-router单页面应用的多标签页使用问题

    正常的思维 做多vue页面应用,我们的第一反应是配置多个入口点,多个vue应用,编译成多个HTML文件,由服务器来决定路由.这是正常的思维. 但谁知道单页面应用也能做到类似的效果呢.单页面不过是服务器 ...

  6. springboot 整合 recketMQ 详细步骤

    前提 RocketMQ的部署环境可用 1 依赖包 <dependency> <groupId>org.apache.rocketmq</groupId> <a ...

  7. 三:nacos的配置中心

    配置中心的使用: 编辑当前项目的pom.xml,加入必要的依赖配置 <!-- spring-cloud-alibaba-dependencies 依赖同注册中心 --> <depen ...

  8. [NOIP2001 提高组] 数的划分

    个人博客传送锚点:https://www.acwing.com/blog/content/55495/ 传送锚点:https://www.luogu.com.cn/problem/P1025 题目描述 ...

  9. Android 13 - Media框架(32)- ACodec(八)

    关注公众号免费阅读全文,进入音视频开发技术分享群! 拖了好久都没有更新,前面写的东西都有些忘了,回过头来再看之前写的内容,觉得有很多地方写的不好,或者说现在又有了新的理解,想要重新修改但是需要修改的内 ...

  10. .net C# System.Text.Json 如何将 string类型的“true”转换为布尔值 解决方案

    直接上解决方法的代码 先定义一个转换顺,代码如下: public sealed class AnhBoolConverter : JsonConverter<bool?> { public ...