Window
此类旨在用作 Page.window
的属性。
Window
类的所有属性和方法仅在桌面 🖥️ 平台上可用。
Window
类有以下属性:
alignment
定义应用程序窗口的对齐方式。
值类型为 Alignment
。
always_on_bottom
是否始终将应用程序窗口显示在其他窗口下面。
默认为 False
。
仅在 Linux 和 Windows 上有效。
always_on_top
是否始终将应用程序窗口显示在其他窗口上面。
默认为 False
。
badge_label
在应用程序窗口上设置徽章标签。
仅在 macOS 上有效。
bgcolor
设置应用程序窗口的背景颜色。
使用 page.bgcolor
一起使用以使窗口透明:
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("我是一个浮动按钮!"))
ft.app(target=main)
focused
设置为 True
以聚焦本机 OS 窗口。
frameless
是否将应用程序窗口设置为无边框。
full_screen
是否切换应用程序的本机 OS 窗口到全屏模式。
默认为 False
。
height
定义应用程序窗口的高度。
icon
设置应用程序窗口的图标。
仅在 Windows 上有效。
left
定义应用程序窗口的水平位置 - 距离屏幕左边缘的虚拟像素距离。
maximizable
是否隐藏/禁用本机 OS 窗口的“最大化”按钮。
默认为 True
。
maximized
是否最大化应用程序窗口。设置此属性为 True
以程序化最大化窗口,设置为 False
以取消最大化。
max_height
定义应用程序窗口的最大高度。
max_width
定义应用程序窗口的最大宽度。
minimizable
是否可以通过窗口的“最小化”按钮最小化应用程序窗口。
默认为 True
。
minimized
是否最小化应用程序窗口。设置此属性为 True
以程序化最小化窗口,设置为 False
以恢复。
min_height
定义应用程序窗口的最小高度。
min_width
定义应用程序窗口的最小宽度。
movable
是否可以移动应用程序窗口。
默认为 True
。
仅在 macOS 上有效。
opacity
定义本机 OS 窗口的不透明度。
值必须在 0.0
(完全透明) 和 1.0
(完全不透明) 之间。
resizable
是否可以调整应用程序窗口的大小。
默认为 True
。
shadow
是否在应用程序窗口周围显示阴影。
在 Windows 上,除非窗口是 frameless
,否则不起作用。
仅在 macOS 和 Windows 上有效。
title_bar_hidden
是否隐藏应用程序窗口的标题栏。
请参阅 WindowDragArea
控件,该控件允许移动具有隐藏标题栏的应用程序窗口。
title_bar_buttons_hidden
是否隐藏应用程序窗口的标题栏按钮。
仅在 macOS 上有效。
top
定义本机 OS 窗口的垂直位置 - 距离屏幕顶部边缘的虚拟像素距离。
prevent_close
设置为 True
以拦截本机关闭信号。可以与 page.window.on_event()
事件处理程序和 page.window.destroy()
一起使用,以实现应用程序退出确认逻辑 - 请参阅 page.window.destroy()
的示例代码。
progress_bar
在任务栏 (Windows) 或 Dock (macOS) 应用程序按钮上显示进度条的值,从 0.0
到 `1.0
alignment
定义应用程序窗口的对齐方式。
值类型为 Alignment
。
always_on_bottom
是否始终将应用程序窗口显示在其他窗口下面。
默认为 False
。
仅在 Linux 和 Windows 上有效。
always_on_top
是否始终将应用程序窗口显示在其他窗口上面。
默认为 False
。
badge_label
在应用程序窗口上设置徽章标签。
仅在 macOS 上有效。
bgcolor
设置应用程序窗口的背景颜色。
使用 page.bgcolor
一起使用以使窗口透明:
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("我是一个浮动按钮!"))
ft.app(target=main)
focused
设置为 True
以聚焦本机 OS 窗口。
frameless
是否将应用程序窗口设置为无边框。
full_screen
是否切换应用程序的本机 OS 窗口到全屏模式。
默认为 False
。
height
定义应用程序窗口的高度。
icon
设置应用程序窗口的图标。
仅在 Windows 上有效。
left
定义应用程序窗口的水平位置 - 距离屏幕左边缘的虚拟像素距离。
maximizable
是否隐藏/禁用本机 OS 窗口的“最大化”按钮。
默认为 True
。
maximized
是否最大化应用程序窗口。设置此属性为 True
以程序化最大化窗口,设置为 False
以取消最大化。
max_height
定义应用程序窗口的最大高度。
max_width
定义应用程序窗口的最大宽度。
minimizable
是否可以通过窗口的“最小化”按钮最小化应用程序窗口。
默认为 True
。
minimized
是否最小化应用程序窗口。设置此属性为 True
以程序化最小化窗口,设置为 False
以恢复。
min_height
定义应用程序窗口的最小高度。
min_width
定义应用程序窗口的最小宽度。
movable
是否可以移动应用程序窗口。
默认为 True
。
仅在 macOS 上有效。
opacity
定义本机 OS 窗口的不透明度。
值必须在 0.0
(完全透明) 和 1.0
(完全不透明) 之间。
resizable
是否可以调整应用程序窗口的大小。
默认为 True
。
shadow
是否在应用程序窗口周围显示阴影。
在 Windows 上,除非窗口是 frameless
,否则不起作用。
仅在 macOS 和 Windows 上有效。
title_bar_hidden
是否隐藏应用程序窗口的标题栏。
请参阅 WindowDragArea
控件,该控件允许移动具有隐藏标题栏的应用程序窗口。
title_bar_buttons_hidden
是否隐藏应用程序窗口的标题栏按钮。
仅在 macOS 上有效。
top
定义本机 OS 窗口的垂直位置 - 距离屏幕顶部边缘的虚拟像素距离。
prevent_close
设置为 True
以拦截本机关闭信号。可以 与 page.window.on_event()
事件处理程序和 page.window.destroy()
一起使用,以实现应用程序退出确认逻辑 - 请参阅 page.window.destroy()
的示例代码。
progress_bar
在任务栏 (Windows) 或 Dock (macOS) 应用程序按钮上显示进度条的值,从 0.0
到 1.0
。
仅在 Windows 和 macOS 上有效。
skip_task_bar
设置为 True
以隐藏应用程序从任务栏 (Windows) 或 Dock (macOS)。
visible
是否使应用程序窗口可见。用于应用程序以隐藏窗口启动时。
以下程序以隐藏窗口启动,并在 3 秒后使其可见:
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)
注意 view=ft.AppView.FLET_APP_HIDDEN
,它在启动时隐藏应用程序窗口。
width
定义应用程序窗口的宽度。
方法
center()
将应用程序窗口移动到屏幕中心。
close()
关闭应用程序窗口。
destroy()
强制关闭应用程序窗口。
此方法可与 page.window.prevent_close = True
一起使用,以实现应用程序退出确认:
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()
将应用程序窗口置于前台(位于其他窗口之上)。
事件
on_event
当应用程序窗口更改其状态(位置、大小、最大化、最小化等)时触发。
事件处理程序的参数类型为 WindowEvent
。