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. minicube安装

    minicube安装 一.安装手册: https://minikube.sigs.k8s.io/docs/start/ 二.安装 打开官网,选择和自己对应的系统和要下载的版本.点击下面的release ...

  2. vueJs开发音乐播放器第二篇(点击歌单跳出详情页)

    继上一篇开发音乐播放器歌单列表页 (1.使用router定义跳转链接,2. 使用axios得到音乐第三方数据,并渲染到页面上,3.组件之间传值(props)) 1.接下来使用了vue-router路由 ...

  3. 3种方法实现图片瀑布流的效果(纯JS,Jquery,CSS)

    最近在慕课网上听如何实现瀑布流的效果:介绍了3种方法. 1.纯JS代码实现: HTML代码部分: <!DOCTYPE html> <html> <head> < ...

  4. jeecg-boot中分页接口用自定义sql和实体实现

    1.controller实现 @RequestMapping(value = "/list", method = RequestMethod.GET) public Result& ...

  5. Advanced .Net Debugging 8:线程同步

    一.介绍 这是我的<Advanced .Net Debugging>这个系列的第八篇文章.这篇文章的内容是原书的第二部分的[调试实战]的第六章[同步].我们经常写一些多线程的应用程序,写的 ...

  6. 网络拓扑—DHCP服务配置

    目录 DHCP服务搭建 相关配置细节前提 安装DHCP服务 DHCP服务搭建 相关配置细节前提 系统:Windows Server 2003 IP网段:10.0.0.0/24 三台机子: 普通PC机 ...

  7. 智能调度_AIRIOT智能车队管理解决方案

    客运.货运.汽车租赁.出租运营等行业对车辆管理.车队管理以及司乘人员的管理方式,逐渐向数字化和智能化转型.传统的依赖人工调度.记录和跟踪的管理模式已经难以满足业务发展需要,存在如下痛点: 实时监控与定 ...

  8. EDP .Net开发框架--WebApi

    平台下载地址:https://gitee.com/alwaysinsist/edp 按分类管理EDP所提供的WebApi接口,以供其他应用调用.WebApi接口不仅可以进行访问控制管理,同时还提供了版 ...

  9. MySQL所有的主从同步架构搭建方式

    目录 一.前言 二.关于MySQL主从同步 三.部署规划 3.1 服务器规划 3.2 数据库目录规划 四.准备工具 五.四台机器上使用通用二进制包安装MySQL(以node7为例) 5.1 上传MyS ...

  10. SpringAi

    Spring AI 初学 Spring AI 官方地址 "spring 不生产 AI,只是 AI 工具的搬运工" 项目可以查看gitee Open AI 前期准备 Open AI官 ...