Window
This class is meant to be used as a property of Page.window
.
All properties and methods of the Window
class are available only on Desktop 🖥️ platforms.
Window
class has the following properties:
alignment
Defines the alignment of the app window.
Value is of type Alignment
.
always_on_bottom
Whether the app window should always be displayed below other windows.
Defaults to False
.
Has effect on Linux and Windows only.
always_on_top
Whether the app window should always be displayed on top of other windows.
Defaults to False
.
badge_label
Sets a badge label on the app window.
Has effect on macOS only.
bgcolor
Sets background color of an application window.
Use together with page.bgcolor
to make a window transparent:
import flet as ft
def main(page: ft.Page):
page.window.bgcolor = ft.colors.TRANSPARENT
page.bgcolor = ft.colors.TRANSPARENT
page.window.title_bar_hidden = True
page.window.frameless = True
page.window.left = 400
page.window.top = 200
page.add(ft.ElevatedButton("I'm a floating button!"))
ft.app(main)
focused
Set to True
to focus a native OS window.
frameless
Whether the app window should be frameless.
full_screen
Whether to switch app's native OS window to a fullscreen mode.
Defaults to False
.
height
Defines the height of the app window.
icon
Sets the icon of the app window.
Has effect on Windows only.
left
Defines the horizontal position of the app window - a distance in virtual pixels from the left edge of the screen.
maximizable
Whether to hide/disable native OS window's "Maximize" button.
Defaults to True
.
maximized
Whether the app window containing is maximized. Set this property to True
to programmatically maximize the window and
set it to False
to unmaximize it.
max_height
Defines the maximum height of the app window.
max_width
Defines the maximum width of the app window.
minimizable
Whether the app window can be minimized through the window's "Minimize" button.
Defaults to True
.
minimized
Whether the app window is minimized. Set this property to True
to programmatically minimize the window and set it
to False
to restore it.
min_height
Defines the minimum height of the app window.
min_width
Defines the minimum width of the app window.
movable
Whether the app window can be moved.
Defaults to True
.
Has effect on macOS only.
opacity
Defines the opacity of a native OS window.
Value must be between 0.0
(fully transparent) and 1.0
(fully opaque).
resizable
Whether the app window can be resized.
Defaults to True
.
shadow
Whether to display a shadow around the app window.
On Windows, doesn't do anything unless window is frameless
.
Has effect on macOS and Windows only.
title_bar_hidden
Whether to hide the app window's title bar.
See WindowDragArea
control that allows moving an app window with hidden title bar.
title_bar_buttons_hidden
Whether to hide the app window's title bar buttons.
Has effect on macOS only.
top
Defines the vertical position of a native OS window - a distance in virtual pixels from the top edge of the screen.
prevent_close
Set to True
to intercept the native close signal. Could be used together with page.window.on_event()
event handler and page.window-destroy()
to implement app exit confirmation logic -
see page.window.destroy()
for code example.
progress_bar
The value from 0.0
to 1.0
to display a progress bar on Task Bar (Windows) or Dock (macOS) application button.
Has effect on Windows and macOS only.
skip_task_bar
Set to True
to hide application from the Task Bar (Windows) or Dock (macOS).
visible
Whether to make the app window visible. Used when the app is starting with a hidden window.
The following program starts with a hidden window and makes it visible in 3 seconds:
from time import sleep
import flet as ft
def main(page: ft.Page):
page.add(ft.Text("Hello!"))
sleep(3)
page.window.visible = True
page.update()
ft.app(main, view=ft.AppView.FLET_APP_HIDDEN)
Note view=ft.AppView.FLET_APP_HIDDEN
which hides app window on start.
width
Defines the width of the app window.
Methods
center()
Move app window to the center of the screen.
close()
Closes app window.
destroy()
Forces closing app window.
This method could be used with page.window.prevent_close = True
to implement app exit confirmation:
import flet as ft
def main(page: ft.Page):
page.title = "MyApp"
def handle_window_event(e):
if e.data == "close":
page.open(confirm_dialog)
page.window.prevent_close = True
page.window.on_event = handle_window_event
def yes_click(e):
page.window.destroy()
def no_click(e):
page.close(confirm_dialog)
confirm_dialog = ft.AlertDialog(
modal=True,
title=ft.Text("Please confirm"),
content=ft.Text("Do you really want to exit this app?"),
actions=[
ft.ElevatedButton("Yes", on_click=yes_click),
ft.OutlinedButton("No", on_click=no_click),
],
actions_alignment=ft.MainAxisAlignment.END,
)
page.add(ft.Text('Try exiting this app by clicking window\'s "Close" button!'))
ft.app(main)
to_front()
Brings app window to the foreground (on top of other windows).
Events
on_event
Fires when app window changes its state: position, size, maximized, minimized, etc.
Event handler argument is of type WindowEvent
.