feat(fltk): ViperFLProject 链接 libfltk_theme.a + Theme 按钮演示(base/Dark/Metro 主题切换)

This commit is contained in:
TermiNexus committed 2026-09-01 21:53:26 +08:00
1 parent 67b52777bd
commit af432b445a
2 files changed
+23 -4

No files matched your search

+22 -4
View File
@@ -17,6 +17,7 @@ import fltk
term_ptr: t.CPtr = None
status_ptr: t.CPtr = None
scheme_idx: int = 0
theme_idx: int = 0
def on_btn_click(w: bytes, data: bytes):
@@ -79,6 +80,21 @@ def on_style(w: bytes, data: bytes):
fltk.Fl_Output_set_value(status_ptr, f"Scheme: {fltk.Fl.scheme_string()}")
def on_theme(w: bytes, data: bytes):
"""Fl_Theme 主题切换:base→Dark→Metro 循环"""
global theme_idx
theme_idx = theme_idx + 1
if theme_idx == 1:
fltk.Fl.set_theme_dark()
elif theme_idx == 2:
fltk.Fl.set_theme_metro()
else:
fltk.Fl.set_scheme("base")
fltk.Fl.reload_scheme()
theme_idx = 0
fltk.Fl_Output_set_value(status_ptr, f"Theme: {theme_idx}")
def on_tick(w: bytes, data: bytes):
"""定时器回调:每秒终端打印一次并续订"""
fltk.Fl_Terminal_append(term_ptr, "tick\n")
@@ -95,10 +111,11 @@ 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, 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)
input_ = fltk.Fl_Input(10, 110, 210, 30, "Type here")
go = fltk.Fl_Button(230, 110, 55, 30, "Go")
style = fltk.Fl_Button(295, 110, 55, 30, "Style")
theme = fltk.Fl_Button(360, 110, 55, 30, "Theme")
spinner = fltk.Fl_Spinner(425, 110, 100, 30)
browser = fltk.Fl_Browser(10, 150, 280, 140)
tree = fltk.Fl_Tree(300, 150, 280, 140)
term = fltk.Fl_Terminal(10, 300, 570, 120, "Terminal")
@@ -118,6 +135,7 @@ def main() -> int:
slider.set_callback(on_slider, 0)
go.set_callback(on_go, input_._ptr)
style.set_callback(on_style, 0)
theme.set_callback(on_theme, 0)
# 数值微调框
spinner.set_minimum(0.0)
+1
View File
@@ -34,6 +34,7 @@
],
"static_libs": [
"../includes/fltk/cfltk/build/libcfltk2.a",
"../includes/fltk/cfltk/build/libfltk_theme.a",
"../includes/fltk/cfltk/build/fltk/lib/libfltk_images.a",
"../includes/fltk/cfltk/build/fltk/lib/libfltk.a",
"../includes/fltk/cfltk/build/fltk/lib/libfltk_png.a",