feat(fltk): main2 演示风格切换(Style 按钮循环 base/plastic/gtk+/gleam/oxy,状态栏 f-string 显示当前风格)

This commit is contained in:
TermiNexus committed 2026-09-01 21:31:12 +08:00
1 parent e529264c79
commit 67b52777bd
1 file changed
+23 -2
+23 -2
View File
@@ -16,6 +16,7 @@ import fltk
# 拿不到 main 的局部变量);空指针用 None(C null),不能用整数 0。
term_ptr: t.CPtr = None
status_ptr: t.CPtr = None
scheme_idx: int = 0
def on_btn_click(w: bytes, data: bytes):
@@ -60,6 +61,24 @@ def on_menu_about(w: bytes, data: bytes):
fltk.Fl_Output_set_value(status_ptr, "Menu: Help/About")
def on_style(w: bytes, data: bytes):
"""风格切换回调:base→plastic→gtk+→gleam→oxy 循环"""
global scheme_idx
scheme_idx = scheme_idx + 1
if scheme_idx == 1:
fltk.Fl.set_scheme("plastic")
elif scheme_idx == 2:
fltk.Fl.set_scheme("gtk+")
elif scheme_idx == 3:
fltk.Fl.set_scheme("gleam")
elif scheme_idx == 4:
fltk.Fl.set_scheme("oxy")
else:
fltk.Fl.set_scheme("base")
scheme_idx = 0
fltk.Fl_Output_set_value(status_ptr, f"Scheme: {fltk.Fl.scheme_string()}")
def on_tick(w: bytes, data: bytes):
"""定时器回调:每秒终端打印一次并续订"""
fltk.Fl_Terminal_append(term_ptr, "tick\n")
@@ -76,8 +95,9 @@ def main() -> int:
btn = fltk.Fl_Button(10, 70, 120, 30, "Click Me")
check = fltk.Fl_Check_Button(150, 70, 100, 30, "Enable")
slider = fltk.Fl_Slider(280, 70, 200, 30)
input_ = fltk.Fl_Input(10, 110, 300, 30, "Type here")
go = fltk.Fl_Button(320, 110, 60, 30, "Go")
input_ = fltk.Fl_Input(10, 110, 240, 30, "Type here")
go = fltk.Fl_Button(260, 110, 60, 30, "Go")
style = fltk.Fl_Button(330, 110, 60, 30, "Style")
spinner = fltk.Fl_Spinner(400, 110, 120, 30)
browser = fltk.Fl_Browser(10, 150, 280, 140)
tree = fltk.Fl_Tree(300, 150, 280, 140)
@@ -97,6 +117,7 @@ def main() -> int:
check.set_callback(on_check, 0)
slider.set_callback(on_slider, 0)
go.set_callback(on_go, input_._ptr)
style.set_callback(on_style, 0)
# 数值微调框
spinner.set_minimum(0.0)