feat(fltk): main2 演示风格切换(Style 按钮循环 base/plastic/gtk+/gleam/oxy,状态栏 f-string 显示当前风格)
This commit is contained in:
1 parent
e529264c79
commit
67b52777bd
1 file changed
+23
-2
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user