Flet, Layout: Page
O objeto page é o primeiro conteiner na construção da árvore de controles do Flet, sendo o único que não está ligado a um conteiner pai. Ele contém o objeto View que, por sua vez abriga todos os outros controles. Uma instância de page e uma view primária são criadas automaticamente quando uma sessão é iniciada.
Métodos de page
Método | Ação |
can_launch_url(url) | Verifica se a url pode ser acessada pelo aplicativo. Retorna True se é possível gerenciar uma URL com o aplicativo. Caso retorne False isso pode significar que não há como vertificar se o recurso está disponível, talvez devido à falta de permissões. Nas versões mais recentes do Android e iOS esse método sempre retornará False, exceto se o aplicativo for configurado com essa permissão. Na web ele retornará False exceto para esquemas específicos, pois páginas web, por princípio, não devem ter acesso aos aplicativos instalados. |
close_banner() | Fecha o banner ativo. |
close_bottom_sheet() | Fecha o pé de página. |
close_dialog() | Fecha a caixa de diálogo ativa. |
close_in_app_web_view() | 📱 Fecha visualização de página web iniciada com launch_url() de dentro do aplicativo. |
get_clipboard() | Recupera o último texto salvo no clipboard do lado do cliente. |
go(route) | Um método auxiliar para atualizar page.route. Ele aciona o evento page.on_route_change seguido de page.update(). |
launch_url(url) | Abre uma URL em nova janela do navegador.
Abre uma nova página exibindo o recurso descrito na URL.
|
page.get_upload_url(file_name, expires) | Gera URL para armazenamento de upload. |
scroll_to(offset, delta, key, duration, curve) | Move a posição de scroll para local absoluto ou incremento relativo. Detalhes em scroll_to. |
set_clipboard(data) | Insere conteúdo no clipboard do lado do cliente (navegador ou desktop). Ex.: page.set_clipboard("Esse valor vai para o clipboard") . |
show_banner(banner: Banner) | Exibe um Banner no pé de página. |
show_bottom_sheet(bottom_sheet: BottomSheet) | Exibe um BottomSheet no pé de página. |
show_dialog(dialog: AlertDialog) | Exibe caixa de diálogo. |
show_snack_bar(snack_bar: SnackBar) | Exibe um SnackBar no pé de página. |
window_center() | 🖥️ Move a janela do aplicativo para o centro da tela. |
window_close() | 🖥️ Fecha a janela do aplicativo. |
window_destroy() | 🖥️ Força o fechamento da janela. Pode ser usado com page.window_prevent_close = True para exigir a confirmação do usuário para encerramento do aplicativo.
import flet as ft def main(page: ft.Page): def fechar(e): page.dialog = caixa_dialogo caixa_dialogo.open = True page.update() def sim(e): page.window_destroy() def nao(e): caixa_dialogo.open = False page.update() caixa_dialogo = ft.AlertDialog( modal=True, title=ft.Text("Confirme..."), content=ft.Text("Você quer realmente fechar o aplicativo?"), actions=[ ft.ElevatedButton("Sim", on_click=sim), ft.ElevatedButton("Não", on_click=nao), ], actions_alignment=ft.MainAxisAlignment.END, ) page.add(ft.Text("Feche a janela do aplicativo clicando o botão \"Fechar\"!")) page.add(ft.ElevatedButton("Fechar", icon="close", on_click=fechar, width=250)) ft.app(target=main) |
window_to_front() | 🖥️ Traz a janela do aplicativo para o primeiro plano. |
Eventos de page
Evento | Dispara quando |
on_close | uma sessão expirou por um tempo configurado. Default: 60 minutos. |
on_connect | o usuário da web conecta ou reconect uma sessão. Não dispara na primeira exibição de uma página mas quando ela é atualizada. Detecta a presença do usuário online. |
on_disconnect | o usuário se desconecta de uma sessão, fechando o navegador ou a aba da página.on_error ocorre um erro não tratado. |
on_keyboard_event | |
on_resize | É o evento disparado quando a janela do aplicativo é redimensionada pelo usuário.
def page_resize(e): print(f"A página foi redimensionada para: Laugura = {page.window_width}, Altura = {page.window_height}) page.on_resize = page_resize |
on_route_change | Evento disparado quando a rota da página é alterada no código, pela alteração da URL no navegador ou uso dos botões de avançar ou retroceder. O objeto e passado automaticamente pelo evento é uma instância da classe RouteChangeEvent:
class RouteChangeEvent(ft.ControlEvent): route: str # passando uma nova rota para a página raiz |
on_scroll | a posição de scroll é alterada pelo usuário. Tem mesmo comportamento de Column.on_scroll. |
on_view_pop | Evento disparado quando o usuário clica o botão Back na barra de controle AppBar. O objeto de evento e é uma instância da classe ViewPopEvent. class ViewPopEvent(ft.ControlEvent): view: ft.View sendo view uma instância do controle View, o conteiner da AppBar. |
on_window_event | Evento disparado quando a janela do aplicativo tem uma propriedade alterada: position, size, maximized, minimized, etc. Pode ser usado com window_prevent_close=True (para interceptar sinal de close) e page.window_destroy() para implementar uma lógica de confirmação de término do aplicativo. |
Os nomes eventos de janela possíveis são: close
, focus
, blur
, maximize
, unmaximize
, minimize
, restore
, resize
, resized
(macOS e Windows), move
, moved
(macOS e Windows), enterFullScreen
e leaveFullScreen
.
Bibiografia
- Python com Flet: Bibiografia Geral
- Flet Controls Galery: Galeria de Controles: Buttons
- Galeria de ícones: Icons Browser
- GitHub: Controls Galery: Galeria de Controles: Código
Bom dia, material espetacular sobre o flet. Espero que você dê continuidade.
Obrigado Alisson.
Espero sim dar sequência ao conteúdo.
Me ajude a divulgar.