From 67b52777bd6f9acee4a8a89b69793d0e1af39bd8 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Tue, 1 Sep 2026 21:31:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(fltk):=20main2=20=E6=BC=94=E7=A4=BA?= =?UTF-8?q?=E9=A3=8E=E6=A0=BC=E5=88=87=E6=8D=A2=EF=BC=88Style=20=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E5=BE=AA=E7=8E=AF=20base/plastic/gtk+/gleam/oxy?= =?UTF-8?q?=EF=BC=8C=E7=8A=B6=E6=80=81=E6=A0=8F=20f-string=20=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=BD=93=E5=89=8D=E9=A3=8E=E6=A0=BC=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ViperFLProject/App/main2.vp | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/ViperFLProject/App/main2.vp b/ViperFLProject/App/main2.vp index 9435dc8..c6e9bc1 100644 --- a/ViperFLProject/App/main2.vp +++ b/ViperFLProject/App/main2.vp @@ -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)