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. Python中强大的通用ORM框架:SQLAlchemy

    Python中强大的通用ORM框架:SQLAlchemy https://zhuanlan.zhihu.com/p/444930067

  2. ubuntu系统下安装最新版的MySQL

    目录 下载mysql源 视频地址 原文章地址 下载mysql源 打开mysql官网 mysql官网文档 进入下载地址页面 下载mysql源 apt-get install -y wget #如果没有w ...

  3. 如何在docker环境下的纯净ubuntu系统中安装最新版nginx

    原文件地址: https://www.cnblogs.com/taoshihan/p/11588269.html 视频地址: https://www.bilibili.com/video/av6898 ...

  4. JS的异步加载

    异步加载 先看一张整体的异步加载对渲染的阻塞情况图,图片如下: 从这张图里我们可以看到如下4点: 默认情况HTML解析,然后加载JS,此时HTML解析中断,然后执行JS,最后JS执行完成恢复HTML解 ...

  5. hutool QrCodeUtil解析二维码出现NotFoundException

    解析部分二维码时出现com.google.zxing.NotFoundException:null,解析失败的二维码手机扫是能正常打开的,后面发现这个问题是因为原二维码图片太大了,将图片缩小后正常解析 ...

  6. c语言在Linux中的使用

    gcc版本升级 如何验证gcc正常使用,编译c以及运行 过程 要验证GCC(GNU Compiler Collection)是否正常使用,您可以按照以下步骤进行操作: 检查GCC是否安装:打开终端或命 ...

  7. CMD文件内容统计程序简单版本

    WordCount命令行程序通过CMD接收参数,输出统计结果到指定文件. 项目码云地址:https://gitee.com/ggtc/WordCount.git 实现的功能有: 统计文件字符数 1 u ...

  8. efcore如何优雅的实现按年分库按月分表

    efcore如何优雅的实现按年分库按月分表 介绍 本文ShardinfCore版本 本期主角: ShardingCore 一款ef-core下高性能.轻量级针对分表分库读写分离的解决方案,具有零依赖. ...

  9. (1)semantic-kernel入门课程

    (1)semantic-kernel入门课程 获取OpenAI在线API 由于在国内的限制,我们并没有办法直接访问OpenAI,所以下面的教程我们会推荐使用https://api.token-ai.c ...

  10. wpf 斗地主 单机版 没有机器人出牌算法

    斗地主的游戏流程实现了,剩余的音效和机器人的出牌算法,抓地主算法就用最简单的实现. 主要实现了各种牌组的组合,牌组的大小比较,总共有16种牌组 基础牌组 单张.炸弹.炸弹型飞机带对子.炸弹型飞机什么都 ...