feat(fltk): ViperFLProject 链接 libfltk_theme.a + Theme 按钮演示(base/Dark/Metro 主题切换)
This commit is contained in:
1 parent
67b52777bd
commit
af432b445a
2 files changed
+23
-4
No files matched your search
@@ -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)
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in new issue
Block a user