nicegui 无框模式最小化关闭例子
通过header 可拖拽窗口

也可通过原生最小化
ui.button('Minimize', on_click=lambda: app.native.main_window.minimize())
# -*- coding: utf-8 -*-
import os
from multiprocessing import freeze_support
from nicegui import app, ui, Client
import pygetwindow as gw# Window args
app.native.window_args['resizable'] = False
app.native.window_args['easy_drag'] = False
app.native.window_args['draggable'] = False
app.native.start_args["debug"] = Falsedef closeApp():gw.getWindowsWithTitle('Test')[0].close() os._exit(0)@ui.page('/')
def mainPage():with ui.header().classes(f'h-6 p-2 bg-[#0E0E0E] pywebview-drag-region').style('margin-left: auto; width: 1450px;'):with ui.row().classes('gap-1 relative left-[1px] top-[1px] ml-auto mr-0'):ui.icon('circle').classes('text-[13px] text-red-400').on('click', closeApp)ui.icon('circle').classes('text-[13px] text-yellow-400').on('click', lambda: gw.getWindowsWithTitle('Test')[0].minimize())ui.input('Test').style('min-width: 400px !important;').props('clearable outlined dense')ui.link('Go to test page', testPage)@ui.page('/test_page')
def testPage():with ui.header().classes(f'h-4 p-2 bg-[#0E0E0E] pywebview-drag-region').style('margin-left: auto; width: 1450px;'):with ui.row().classes('gap-1 relative left-[1px] top-[1px] ml-auto mr-0'):ui.icon('circle').classes('text-[13px] text-red-400').on('click', closeApp)ui.icon('circle').classes('text-[13px] text-yellow-400').on('click', lambda: gw.getWindowsWithTitle('Test')[0].minimize())ui.label('Test Page')if __name__ in {"__main__", "__mp_main__"}:freeze_support()ui.run(title="Test", reload=False, native=True, dark=False, window_size=(1470, 840), fullscreen=False, on_air=False, frameless=True)