diff --git a/locales/zh/.ipynb_checkpoints/app-checkpoint.py b/locales/zh/.ipynb_checkpoints/app-checkpoint.py deleted file mode 100644 index f46d7cda5705b31ba35076ded1c972f450b24317..0000000000000000000000000000000000000000 --- a/locales/zh/.ipynb_checkpoints/app-checkpoint.py +++ /dev/null @@ -1,43 +0,0 @@ -''' -title: SimpleStart 简介 -''' - -import simplestart as ss - -ss.md("# SimpleStart 介绍", color="#3451b2") - - -ss.space() -ss.md(''' -### 无需前端编程的 Python 网页开发工具 -SimpleStart 是一款无需前端网页编程的工具,所有开发工作都通过 Python 在后台完成。即使不精通 HTML、CSS、JavaScript、Ajax 等知识,也能轻松开发网页应用。 - -''') - -ss.space() - -ss.md(''' -### 提供丰富的组件 -SimpleStart 提供包括文本、按钮、列表、表格、音频、视频等在内的多种网页开发所需组件,支持容器和布局,同时允许用户自定义组件。 - -''') - -ss.space() - -ss.md(''' -### 提供数据可视化支持 -SimpleStart 通过图像、表格、Plot 图表和 SQLite 数据库等方式实现数据可视化。它支持静态和交互式图表的显示,并提供数据的显示和编辑功能。 -''') - -ss.space() -ss.md("---") -ss.write("关于安装使用等,请访问") -ss.md(''' -[在线帮助](http://www.simplestart.cc) -''') - -def locale(): - ss.send_message("change_locale", {"locale":""}); - - -ss.button("English", onclick = locale) \ No newline at end of file diff --git a/locales/zh/.ipynb_checkpoints/config-checkpoint.yaml b/locales/zh/.ipynb_checkpoints/config-checkpoint.yaml deleted file mode 100644 index 99b41cb0989ff931b22018e7f111e9c60eea7777..0000000000000000000000000000000000000000 --- a/locales/zh/.ipynb_checkpoints/config-checkpoint.yaml +++ /dev/null @@ -1,16 +0,0 @@ -title: "SimpleStart 演示" - -show_sidebar: true -wide_screen_mode : true - -show_header: False -app_bar_height: 59 ##default is 64 - -show_footer: false - - -locales: - - code: "" - name: "English" - - code: "zh" - name: "Chinese 中文" \ No newline at end of file diff --git a/locales/zh/__pycache__/app.cpython-310.pyc b/locales/zh/__pycache__/app.cpython-310.pyc deleted file mode 100644 index d52cb152928c631a95e7e937889bc4ac9f6b243d..0000000000000000000000000000000000000000 Binary files a/locales/zh/__pycache__/app.cpython-310.pyc and /dev/null differ diff --git a/locales/zh/__pycache__/app.cpython-311.pyc b/locales/zh/__pycache__/app.cpython-311.pyc deleted file mode 100644 index a2ee2d6c2cfe4d4b0b9b297f273cc3f5803fe7d0..0000000000000000000000000000000000000000 Binary files a/locales/zh/__pycache__/app.cpython-311.pyc and /dev/null differ diff --git a/locales/zh/app.py b/locales/zh/app.py deleted file mode 100644 index f46d7cda5705b31ba35076ded1c972f450b24317..0000000000000000000000000000000000000000 --- a/locales/zh/app.py +++ /dev/null @@ -1,43 +0,0 @@ -''' -title: SimpleStart 简介 -''' - -import simplestart as ss - -ss.md("# SimpleStart 介绍", color="#3451b2") - - -ss.space() -ss.md(''' -### 无需前端编程的 Python 网页开发工具 -SimpleStart 是一款无需前端网页编程的工具,所有开发工作都通过 Python 在后台完成。即使不精通 HTML、CSS、JavaScript、Ajax 等知识,也能轻松开发网页应用。 - -''') - -ss.space() - -ss.md(''' -### 提供丰富的组件 -SimpleStart 提供包括文本、按钮、列表、表格、音频、视频等在内的多种网页开发所需组件,支持容器和布局,同时允许用户自定义组件。 - -''') - -ss.space() - -ss.md(''' -### 提供数据可视化支持 -SimpleStart 通过图像、表格、Plot 图表和 SQLite 数据库等方式实现数据可视化。它支持静态和交互式图表的显示,并提供数据的显示和编辑功能。 -''') - -ss.space() -ss.md("---") -ss.write("关于安装使用等,请访问") -ss.md(''' -[在线帮助](http://www.simplestart.cc) -''') - -def locale(): - ss.send_message("change_locale", {"locale":""}); - - -ss.button("English", onclick = locale) \ No newline at end of file diff --git a/locales/zh/config.yaml b/locales/zh/config.yaml deleted file mode 100644 index 99b41cb0989ff931b22018e7f111e9c60eea7777..0000000000000000000000000000000000000000 --- a/locales/zh/config.yaml +++ /dev/null @@ -1,16 +0,0 @@ -title: "SimpleStart 演示" - -show_sidebar: true -wide_screen_mode : true - -show_header: False -app_bar_height: 59 ##default is 64 - -show_footer: false - - -locales: - - code: "" - name: "English" - - code: "zh" - name: "Chinese 中文" \ No newline at end of file diff --git a/locales/zh/pages/002 Form Component/demo_button.py b/locales/zh/pages/002 Form Component/demo_button.py deleted file mode 100644 index 926a0b6059b1141985bbb0df10dc249cb72df924..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/demo_button.py +++ /dev/null @@ -1,141 +0,0 @@ -### Button 按钮 -import simplestart as ss - -ss.md(''' -## ss.button 按钮 -''') -ss.md(''' -[在线帮助](https://www.simplestart.cc/zh/doc_form/ss-button.html) -''') -ss.space() -ss.md(''' -#### 🔅 示例 -''') - -#自定义函数 -def myclick(): - mytext.text = "You clicked " - -def reset(): - mytext.text = "This is button" - but1.type = "" - ss.getcm().components[but1.id]["content"]["options"]["icon"] = "" - ss.getcm().components[but1.id]["content"]["options"]["endicon"] = "" - ss.getcm().components[but1.id]["content"]["options"]["icon_color"] = "mediumseagreen" - ss.getcm().components[but1.id]["content"]["options"]["style"] = "background-color:initial;color:initial" - ss.session["iconstr"] = '' - ss.session["style_str"] = '' - ss.session["style"] = '' - - -#基本用法 -cols = ss.columns([40,"flex:60"], design=True) -with cols[0]: - mytext = ss.text("This is button") - but1 = ss.button("Click it", icon = "mdi-account-circle", onclick=myclick) - -def onradiochange(event): - value = event.value - if value == "default": - but1.type = "" - ss.session["buttonstyle"] = "" - elif value == "outlined": - but1.type = "outlined" - ss.session["buttonstyle"] = 'type = "outlined\",' - elif value == "flat": - but1.type = "tonal" - ss.session["buttonstyle"] = 'type = "flat\",' - elif value == "text": - but1.type = "text" - ss.session["buttonstyle"] = 'type = "text\",' - elif value == "plain": - but1.type = "plain" - ss.session["buttonstyle"] = 'type = "plain\",' - -def oncheckbox_change(state, value): - if value == True: - ss.getcm().components[but1.id]["content"]["options"]["icon"] = "aim" - ss.session["iconstr"] = ' icon="search",' - else: - ss.getcm().components[but1.id]["content"]["options"]["icon"] = "" - ss.session["iconstr"] = '' - but1.update() - -def onradiochange2(event): - index = event.index - - if index == 0: - ss.getcm().components[but1.id]["content"]["options"]["icon"] = "mdi-account-circle" - ss.getcm().components[but1.id]["content"]["options"]["endIcon"] = "" - ss.session["iconstr"] = ' icon="mdi-account-circle",' - elif index == 1: - ss.getcm().components[but1.id]["content"]["options"]["icon"] = "" - ss.getcm().components[but1.id]["content"]["options"]["endIcon"] = "mdi-alert" - ss.session["iconstr"] = ' endIcon="mdi-alert",' - else: - ss.getcm().components[but1.id]["content"]["options"]["icon"] = "" - ss.getcm().components[but1.id]["content"]["options"]["endIcon"] = "" - ss.session["iconstr"] = '' - but1.update() - - -def changeColor(bkcolor): - ss.getcm().components[but1.id]["content"]["options"]["style"] = f"background-color:{bkcolor}; color:white" - ss.getcm().components[but1.id]["content"]["options"]["icon_color"] = "white" - ss.session["style_str"] = f'style="background-color:{bkcolor}, color:white"' - ss.session["style"] = 'style=style,' - but1.update() - - -with cols[1]: - ss.text("测试") - - ss.write("---") - ss.radio(["default", "outlined", "flat", "text", "plain"], "default", inline = True, onchange=onradiochange) - - ss.write("---") - ss.radio([(1, "图标(前)"), (2, "图标(后)"), (3, "图标按钮")], inline = True, onchange=onradiochange2) - - - ss.write("---") - ss.button("", type = "flat", size = "small", style="background-color:#409eff", onclick=lambda:changeColor('#409eff')) - ss.button("", type = "flat", size = "small", style="background-color:#67c23a", onclick=lambda:changeColor('#67c23a')) - ss.button("", type = "flat", size = "small", style="background-color:#e6a23c", onclick=lambda:changeColor('#e6a23c')) - ss.button("", type = "flat", size = "small", style="background-color:#f56c6c", onclick=lambda:changeColor('#f56c6c')) - ss.button("", type = "flat", size = "small", style="background-color:#909399", onclick=lambda:changeColor('#909399')) - - - ss.space() - ss.button("重置", onclick=reset) - - -ss.space("mt-8") - -ss.write("#### 🔎 代码") - -ss.md(''' -```python -import simplestart as ss - -def clickme(): - mytext.text = "You clicked" - -mytext = ss.text("This is button") -@style_str -ss.button("Click it", @buttonstyle @iconstr @style onclick=clickme) -``` -''') - -ss.md(''' -::: tip - 函数调用 - ss.button(label, type, color, size, icon, onclick) -::: -''') - -def onPageLoad(): - ss.session["buttonstyle"] = "" - ss.session["iconstr"] = "" - ss.session["style"] = "" - ss.session["style_str"] = "" - diff --git a/locales/zh/pages/002 Form Component/demo_checkbox.py b/locales/zh/pages/002 Form Component/demo_checkbox.py deleted file mode 100644 index 06449961da44d0259ad85c391d9cda10b93af4ff..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/demo_checkbox.py +++ /dev/null @@ -1,76 +0,0 @@ -### Checkbox 多选框 -import simplestart as ss - -ss.write("### ss.checkbox") - -def onchange(event): - ss.session["checked_value"] = event.value - - -ss.md(''' ---- -#### 🔅 示例1 -''') - -ss.md("onchange: @checked_value") - -ss.checkbox("checkme", onchange = onchange) -ss.checkbox("initially checked", checked = True, onchange = onchange) - - -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -def onchange(state, value): - state["checked_value"] = value - -#ui -ss.md("onchange: @checked_value") - -ss.checkbox("checkme", onchange = onchange) -ss.checkbox("initially checked", checked = True, onchange = onchange) - - -''') - -ss.space() -ss.md(''' ---- -#### 🔅 示例2 -获取 checkbox 的状态 -''') - -mycheck = ss.checkbox("check me", onchange = onchange) - -def myclick(): - ss.message(mycheck.value) - -ss.button("获取状态", onclick = myclick) - -ss.space() -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -mycheck = ss.checkbox("check me", onchange = onchange) - -def myclick(): - ss.message(mycheck.value) - -ss.button("获取状态", onclick = myclick) - -''') - -def onPageLoad(): - ss.session["checked_value"] = "" \ No newline at end of file diff --git a/locales/zh/pages/002 Form Component/demo_dialog.py b/locales/zh/pages/002 Form Component/demo_dialog.py deleted file mode 100644 index bb059356afc9f4ec8b897a636c61a0e0bdd887b7..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/demo_dialog.py +++ /dev/null @@ -1,78 +0,0 @@ -### Dialog 对话框 -import simplestart as ss - -ss.md("## ss.dialog 对话框") - -ss.space() - -ss.md(''' ---- -#### 🔅 示例 -''') - -def testme(): - ss.message("testme") - -def showit(): - if ss.session["str_fullscreen"] != "": - dialog.show(fullscreen = True) - else: - dialog.show() - -def myclose(event): - ss.message("dialog close with result " + event.value) - -dialog = ss.dialog("对话框标题", onclose=myclose) -with dialog: - ss.text("SimpleStart dialog demostration") - ss.md("---") - ss.button("testme", onclick=testme) - ss.md(":smile:") - -cols = ss.columns([60,"flex:40; border-left:1px solid lightgray"], border=True, style="border:1px solid lightgray") -with cols[0]: - mytext = ss.text("This is dialog") - ss.button("show dialog", onclick=showit) - -def mycheck(event): - if event.value == True: - ss.session["str_fullscreen"] = "fullscreen = True" - #dialog.show(fullscreen = True) - else: - ss.session["str_fullscreen"] = "" - -with cols[1]: - ss.text("对话框选项") - ss.checkbox("全屏", onchange=mycheck) - -ss.space() -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -def myclose(event): - ss.message("dialog close with result " + event.value) - -dialog = ss.dialog(title="对话框标题", onclose=myclose) -with dialog: - ss.text("Opening from the bottom") - ss.md("---") - ss.button("testme", onclick=testme) - ss.md(":smile:") - -def showit(): - dialog.show(@str_fullscreen) - -ss.button("show dialog", onclick=showit) -``` -''') - -def onPageEnter(): - ss.session["str_fullscreen"] = "" - - diff --git a/locales/zh/pages/002 Form Component/demo_expander.py b/locales/zh/pages/002 Form Component/demo_expander.py deleted file mode 100644 index 65fd9a7bb479e9243dfe48baffd08931ae4d8686..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/demo_expander.py +++ /dev/null @@ -1,30 +0,0 @@ -### Expander 下拉展开控件 -import streamsync as ss - -ss.md("## ss.expander 下拉展开") - - -ss.md(''' -#### 🔅 示例 -''') - -with ss.expander("关于SimpleStart", expanded = True): - ss.text("Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi, ratione debitis quis est labore voluptatibus! \ - Eaque cupiditate minima, at placeat totam, magni doloremque veniam neque porro libero rerum unde voluptatem!", style="padding:10px") - - -ss.space() -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -with ss.expander("关于SimpleStart"): - ss.text("Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi, ratione debitis quis est labore voluptatibus! \ - Eaque cupiditate minima, at placeat totam, magni doloremque veniam neque porro libero rerum unde voluptatem!") -``` -''') \ No newline at end of file diff --git a/locales/zh/pages/002 Form Component/demo_menu.py b/locales/zh/pages/002 Form Component/demo_menu.py deleted file mode 100644 index af6afba2df9a8b1d538fea31073fb10fa5176a73..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/demo_menu.py +++ /dev/null @@ -1,100 +0,0 @@ -### Menu 菜单 -import streamsync as ss - -ss.md("## ss.menu") - -ss.md(''' -#### 🔅 示例 -''') - -data = [ - {'index': '1', 'title': 'Processing Center', 'icon':'mdi-home'}, - {'type': 'spacer'}, #add spacer - { - 'index': '2', - 'title': 'Workspace', - 'icon' : 'mdi-plus', - 'subItems': [ - {'index': '2-1', 'title': 'item one'}, - {'index': '2-2', 'title': 'item two'}, - {'index': '2-3', 'title': 'item three'}, - { - 'index': '2-4', - 'title': 'item four', - 'subItems': [ - {'index': '2-4-1', 'title': 'item one'}, - {'index': '2-4-2', 'title': 'item two'}, - {'index': '2-4-3', 'title': 'item three'}, - ], - }, - ], - }, - {'index': '3', 'title': 'Info', 'disabled': True, 'icon':'mdi-cancel'}, - {'index': '4', 'title': 'Orders', 'icon':'mdi-wrench'}, -] - -def menu_select(event): - print("menu1") - ss.message(event.data["keyPath"]) - - -ss.md("### 顶栏菜单") -ss.menu(data, direction = "horizontal", onselect = menu_select) - -ss.space() -ss.md("### 侧栏菜单") - -ss.menu(data, direction = "vertical", dark = True, onselect = menu_select) - - -ss.space() -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -data = [ - {'index': '1', 'title': 'Processing Center', 'icon':'mdi-home'}, - {'type': 'spacer'}, #add spacer - { - 'index': '2', - 'title': 'Workspace', - 'icon' : 'mdi-plus', - 'subItems': [ - {'index': '2-1', 'title': 'item one'}, - {'index': '2-2', 'title': 'item two'}, - {'index': '2-3', 'title': 'item three'}, - { - 'index': '2-4', - 'title': 'item four', - 'subItems': [ - {'index': '2-4-1', 'title': 'item one'}, - {'index': '2-4-2', 'title': 'item two'}, - {'index': '2-4-3', 'title': 'item three'}, - ], - }, - ], - }, - {'index': '3', 'title': 'Info', 'disabled': True, 'icon':'mdi-cancel'}, - {'index': '4', 'title': 'Orders', 'icon':'mdi-wrench'}, -] - -def menu_select(event): - print("menu1") - ss.message(event.data["keyPath"]) - - -ss.md("### Horiontal Menu") -ss.menu(data, direction = "horizontal", onselect = menu_select) - -ss.space() -ss.md("### Vertical Menu") - -ss.menu(data, direction = "vertical", dark = True, onselect = menu_select) - -``` -''') \ No newline at end of file diff --git a/locales/zh/pages/002 Form Component/demo_radio.py b/locales/zh/pages/002 Form Component/demo_radio.py deleted file mode 100644 index 4558e570a83e7eb427f6e479a5a8a9ed707df68c..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/demo_radio.py +++ /dev/null @@ -1,93 +0,0 @@ -### Radio 单选框 -import simplestart as ss - -ss.md("## ss.radio 单选框") - -ss.space() - -ss.md(''' -#### 🔅 示例 -''') - -def onchange(event): - ss.session["options_value"] = event.value - ss.session["options_index"] = event.index - -ss.md("onchange: value:@options_value, index:@options_index") - -options = ["Option 1", "Option 2", "Option 3"] -myradio = ss.radio(options, label = "### my radio1", index = 0, onchange = onchange) - - -options = [("C++", '#### C++'), - ("Javascript", '#### Javascript'), - ("Python", '#### Python') - ] -ss.radio(options, inline = True, label = "### my radio2", index = 0, iconColor = "blue", onchange = onchange) - - - -ss.write("---") -ss.write("#### 🔎 代码") - -ss.md(''' -```python -import simplestart as ss - -def onchange(event): - ss.session["options_value"] = event.value - ss.session["options_index"] = event.index - -ss.md("onchange: value:\@options_value, index:\@options_index") - -options = ["Option 1", "Option 2", "Option 3"] -myradio = ss.radio(options, label = "### my radio1", index = 0, onchange = onchange) - - -options = [("C++", '#### C++'), - ("Javascript", '#### Javascript'), - ("Python", '#### Python') - ] -ss.radio(options, inline = True, label = "### my radio2", index = 0, iconColor = "blue", onchange = onchange) - -def onPageLoad(): - ss.session["options_value"] = "" - -''') - - -ss.space() -ss.md(''' ---- -#### 🔅 示例 - 获取状态值 -''') - -def myclick1(): - ss.message(myradio.value) - -ss.button("获取状态值", onclick = myclick1) - -def myclick2(): - ss.message(myradio.index) - -ss.button("获取状态值索引", onclick = myclick2) - -ss.write("---") -ss.write("#### 🔎 代码段") - -ss.md(''' -```python -#... -def myclick1(): - ss.message(myradio.value) - -ss.button("获取状态值", onclick = myclick1) - -def myclick2(): - ss.message(myradio.index) - -ss.button("获取状态值索引", onclick = myclick2) -''') - -def onPageLoad(): - ss.session["options_value"] = "" \ No newline at end of file diff --git a/locales/zh/pages/002 Form Component/demo_selectbox.py b/locales/zh/pages/002 Form Component/demo_selectbox.py deleted file mode 100644 index c2b8ac8a9172926d6a341f73064fd7e5f05cab73..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/demo_selectbox.py +++ /dev/null @@ -1,77 +0,0 @@ -### Selectbox 选择器 -import simplestart as ss - -ss.md("## ss.selectbox 选择器") - -ss.space() -ss.md(''' -#### 🔅 示例1 -在页面上创建一个带标题的,有3个选项的selectbox. -''') -ss.space() - -options = ["option1","option2", "option3"] - -def selchange(event): - ss.message(f"You select {event.value}, index of {event.index}") - -select1 = ss.selectbox(options, index=0, title = "### Please select", onchange = selchange) - - - -ss.write("#### 🔎 代码") - -ss.md(""" -```python -import simplestart as ss - -options = ["option1","option2", "option3"] - -def selchange(event): - ss.session["select_value"] = event.value - ss.session["select_index"] = select1.index - -ss.write("info value: index:") -select1 = ss.selectbox(options, value="option1", onchange = selchange) - - -``` -""") - -ss.md(''' -#### 🔅 示例2 -获取selectbox当前的选项. 除了在selectbox的onchange事件里,通过event的index和value获取用户的选项信息外,还可以通过selectbox的变量获取用户的选择信息。 -''') -ss.space() - -def onclick1(): - ss.message(select1.value) - -ss.button("当前选项值", onclick = onclick1) - -def onclick2(): - ss.message(select1.index) - -ss.button("当前选项索引", onclick = onclick2) - -ss.space() - -ss.write("#### 🔎 代码段") - -ss.md(""" -```python - -#... - -def onclick1(): - ss.message(select1.value) - -ss.button("当前选项值", onclick = onclick1) - -def onclick2(): - ss.message(select1.index) - -ss.button("当前选项索引", onclick = onclick2) - -``` -""") \ No newline at end of file diff --git a/locales/zh/pages/002 Form Component/demo_slider.py b/locales/zh/pages/002 Form Component/demo_slider.py deleted file mode 100644 index 44ce5b1d5f6d95debe958a771888edfa1ffb7ea5..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/demo_slider.py +++ /dev/null @@ -1,35 +0,0 @@ -### Slider 滑块 -import simplestart as ss - -ss.md("## ss.slider 滑块") - -ss.space() - -ss.md(''' -#### 🔅 示例 -''') - -ss.md("### Please drag the slider to change the value") - -info = ss.text("number") - -def onchange(event): - info.text = event.value - -ss.slider("my slider", value = 500, min = 0, max = 1000, onchange = onchange, style="width:50%") - -ss.space() - -ss.write("#### 🔎 代码") - -ss.md(''' -```python -import simplestart as ss - -info = ss.text("number") - -def onchange(state, value): - info.text = value - -ss.slider(500, 0, 1000, onchange = onchange) -''') \ No newline at end of file diff --git a/locales/zh/pages/002 Form Component/demo_textarea.py b/locales/zh/pages/002 Form Component/demo_textarea.py deleted file mode 100644 index 466d3f1c55d9a350ad7e62e773ea9e304e888f5d..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/demo_textarea.py +++ /dev/null @@ -1,46 +0,0 @@ -### Textarea 文本域 -import streamsync as ss - -ss.md("## ss.textarea 文本域") - - -ss.space() -ss.md("#### 🔅 示例") - -ss.md("---") - -#基本用法 -#test = ss.text_input("hello, world", type="textarea") -mytext = ss.textarea("hello, world") - -ss.write("---") -ss.write("#### 🔎 代码") - -ss.md(''' -```python -import simplestart as ss - -mytext = ss.textarea("hello, world") - -''') - -ss.space() -ss.md("#### 🔅 获取文本域的文本值") -ss.md("---") - -def myclick(): - ss.message(mytext.value) - -ss.button("获取文本", onclick = myclick) - -ss.write("---") -ss.write("#### 🔎 代码段") - -ss.md(''' -```python -#... -def myclick(): - ss.message(mytext.value) - -ss.button("获取文本", onclick = myclick) -''') \ No newline at end of file diff --git a/locales/zh/pages/002 Form Component/demo_textinput.py b/locales/zh/pages/002 Form Component/demo_textinput.py deleted file mode 100644 index c750f273442c453c291adc8f208ccd0ec61dffde..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/demo_textinput.py +++ /dev/null @@ -1,64 +0,0 @@ -### Text_input 文本 -import streamsync as ss - - -ss.md("## ss.text_input 文本") - -ss.space() -ss.md("#### 🔅 示例") - -ss.md("---") -ss.space() - -def onchange(state, value): - ss.message(f"onchange, {value}") - -def onclear(state, value): - ss.message("onclear event happend") - -def onblur(state, value): - print("onblur") - ss.message(f"onblur, {value}") - -def testme(): - ss.message(myinput.value) - -#ui -cols = ss.columns([50,50], border = True) -with cols[0]: - myinput = ss.text_input("Hello SimpleStart", clearable=True) - - -def myevent(event): - if event.tag == "sel1": - myinput.variant = event.value - elif event.tag == "sel2": - myinput.type = event.value - elif event.tag == "but1": - ss.message(myinput.value) - - -with cols[1]: - ss.selectbox(["filled","outlined","underlined", "solo", "solo-filled", "solo-inverted"], label='#### Change the input style', \ - value="solo", onchange = myevent, eventTag="sel1") - - ss.selectbox(["text","time", "date", "week", "month", "password", "color"], label='#### Change the input type', \ - onchange = myevent, eventTag="sel2") - - ss.write('#### 获取input值') - ss.button("获取文本值", onclick=myevent, eventTag="but1") - - -ss.write("---") -ss.write("#### 🔎 代码") - -ss.md(''' -```python -import simplestart as ss - -myinput = ss.text_input("Hello SimpleStart", clearable=True) - -#或者 -#ss.text_input("hello", type="text", variant = "filled") - -''') \ No newline at end of file diff --git a/locales/zh/pages/002 Form Component/demo_upload.py b/locales/zh/pages/002 Form Component/demo_upload.py deleted file mode 100644 index b2ed33abe68505767348bf670081296982566d54..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/demo_upload.py +++ /dev/null @@ -1,42 +0,0 @@ -### Upload 文件上传 -import streamsync as ss -import pandas as pd - -ss.write("备注:python-multipart需要安装包加入") - -ss.md("## ss.upload 文件上传") - - -ss.space() -ss.md("#### 🔅 示例 - 上传图片") -ss.space() - - -def onsucess(event): - filename = event.value - path = f'{ss.baseinfo["package_path"]}/uploads/{filename}' - myimage.image = path - -ss.upload("Upload Image ...", accept="image/png, image/jpeg, image/bmp", icon="mdi-camera", onsucess = onsucess) - -myimage = ss.image() - -ss.space() -ss.write("---") -ss.write("#### 🔎 代码") - -ss.md(''' -```python -import simplestart as ss - -def onsucess(event): - filename = event.value - path = f'{ss.baseinfo["package_path"]}/uploads/{filename}' - - myimage.image = path - -ss.upload(label = "Upload Image ...", accept="image/png, image/jpeg, image/bmp", icon="mdi-camera", onsucess = onsucess) - -myimage = ss.image() - -''') \ No newline at end of file diff --git a/locales/zh/pages/002 Form Component/folder.json b/locales/zh/pages/002 Form Component/folder.json deleted file mode 100644 index 582001969b929dc02458db1a53ca79133d35457b..0000000000000000000000000000000000000000 --- a/locales/zh/pages/002 Form Component/folder.json +++ /dev/null @@ -1 +0,0 @@ -{"alias":"表单组件"} \ No newline at end of file diff --git a/locales/zh/pages/003 Content Display/demo_audio.py b/locales/zh/pages/003 Content Display/demo_audio.py deleted file mode 100644 index 49989fe637506985931a9fb59209e22eb43220dc..0000000000000000000000000000000000000000 --- a/locales/zh/pages/003 Content Display/demo_audio.py +++ /dev/null @@ -1,39 +0,0 @@ -### Audio 音频播放 -import streamsync as ss - -ss.md("## ss.audio 音频播放") - - -ss.space() -ss.md(''' -#### 🔅 示例 -''') - -ss.space() - -audiosrc = "media/test.wav" -player = ss.audio(audiosrc) - - -ss.space("mt-8") - -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -audiosrc = "media/davide_quatela--breathing_barcelona.mp3" -player = ss.audio(audiosrc) -``` -''') - - -ss.md(''' -::: tip -ss.audio 支持音频格式包括 wav, mp3 等 -::: -''') \ No newline at end of file diff --git a/locales/zh/pages/003 Content Display/demo_html.py b/locales/zh/pages/003 Content Display/demo_html.py deleted file mode 100644 index 641c571b6ff3e3aa5e5f5f897232856dd403ad0f..0000000000000000000000000000000000000000 --- a/locales/zh/pages/003 Content Display/demo_html.py +++ /dev/null @@ -1,49 +0,0 @@ -### Html 超文本 -import streamsync as ss - - -ss.md("## ss.html 超文本") - -ss.space("") - -ss.md(''' -#### 🔅 示例 -''') - - -ss.md("### html") - -ss.html(f""" -

This is a piece of rich text content, which contains bold and italic text.

- -
this is red
-""") - -ss.space("mt-8") - -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -ss.html(f""" -

This is a piece of rich text content, which contains bold and italic text.

- -
this is red
-""") -``` -''') \ No newline at end of file diff --git a/locales/zh/pages/003 Content Display/demo_image.py b/locales/zh/pages/003 Content Display/demo_image.py deleted file mode 100644 index af6fab40bc2b892d3261957e49f0a8a52bd00544..0000000000000000000000000000000000000000 --- a/locales/zh/pages/003 Content Display/demo_image.py +++ /dev/null @@ -1,92 +0,0 @@ -### Image 图像 -import simplestart as ss - -import cv2 -from PIL import Image -import os - -ss.md("## ss.image 图像") - -ss.md(''' -#### 🔅 示例 -''') - -ss.space() - -style = "width:200px;height:200px;margin:10px" -img = "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" - -cols = ss.columns([60,"flex:40"], border=True) -with cols[0]: - mytext = ss.text("This is image") - ss.space() - myimg = ss.image(img, style=style, fit="contain") - ss.text("Image fit mode: fill") - -def onradiochange(event): - #ss.message(event.value) - ss.session["fit_str"] = event.value - ss.getcm().components[myimg.id]["content"]["options"]["fit"] = event.value - myimg.update() - -def onradiochange2(event): - value = event.value - index = event.index - - - source = ["Http", "PIL", "OpenCV", "Local"] - ss.session["source_str"] = source[index] - - - if index == 0: - img = "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" - ss.session["image_path"] = "\"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg\"" - myimg.image = img - if index == 1: - image = Image.open('./media/image/dalao.jpeg') - ss.session["image_path"] = "Image.open('./media/image/dalao.jpeg')" - myimg.image = image - if index == 2: - img = cv2.imread('./media/image/cat.jpeg',cv2.IMREAD_COLOR) - ss.session["image_path"] = "cv2.imread('./media/image/cat.jpeg',cv2.IMREAD_COLOR)" - myimg.image = img - if index == 3: - file_path = './media/image/dog.jpeg' - ss.session["image_path"] = "'./media/image/dog.jpeg'" - myimg.image = file_path - - myimg.update() - - -with cols[1]: - ss.text("image fit mode") - ss.radio(["fill", "contain", "cover", "none", "scale-down"], index = 1, inline = True, onchange=onradiochange) - ss.space() - ss.text("image source") - ss.radio(["Http image","PIL image", "OpenCV image", "Local image"], index = 0, inline = True, onchange=onradiochange2) - -ss.space() - -ss.write(''' -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss -import cv2 -from PIL import Image - -style = "width:100px; height:100px; margin:10px" -img = "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" -ss.image(img, style=style, fit="fill") -``` -''') - - - -def onPageLoad(): - ss.session["info"] = "x" - ss.session["fit_str"] = "fill" - ss.session["source_str"] = "Http" - ss.session["image_path"] = "\"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg\"" diff --git a/locales/zh/pages/003 Content Display/demo_markdown.py b/locales/zh/pages/003 Content Display/demo_markdown.py deleted file mode 100644 index 6c4a73e88222af3c9fac4faadd1740f4734dba6c..0000000000000000000000000000000000000000 --- a/locales/zh/pages/003 Content Display/demo_markdown.py +++ /dev/null @@ -1,57 +0,0 @@ -### Markdown 文本 -import simplestart as ss - -ss.md("## ss.markdown md文本") - -ss.space() - -ss.md(''' -#### 🔅 示例 -''') - -ss.space() - -ss.markdown("- 19^th^") -ss.markdown("# 一级标题") -ss.markdown("## 二级标题") -ss.markdown("### 三级标题") - -#水平分割线 -ss.markdown("---") - -ss.markdown(''' -- list item1 -- list item2 -- list item3 -''') - -ss.markdown(":smile:") - - - -ss.space("mt-8") - -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -ss.markdown("# 一级标题") -ss.markdown("## 二级标题") -ss.markdown("### 三级标题") - -#水平分割线 -ss.markdown("---") - -ss.markdown(\''' -- list item1 -- list item2 -- list item3 -\''') - -``` -''') \ No newline at end of file diff --git a/locales/zh/pages/003 Content Display/demo_message.py b/locales/zh/pages/003 Content Display/demo_message.py deleted file mode 100644 index cfeac78ba9a216ab3461735bdcff54b93d72a66f..0000000000000000000000000000000000000000 --- a/locales/zh/pages/003 Content Display/demo_message.py +++ /dev/null @@ -1,37 +0,0 @@ -### Message 消息提示 -import simplestart as ss - -ss.md("## ss.message 弹出消息") - -ss.space() - - -ss.md(''' -#### 🔅 示例 -''') -ss.space() - - -def showmsg(): - ss.message("Hello, world") - -showmsg() -ss.button("message", onclick=showmsg) - - -ss.space("mt-8") - -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -def showmsg(): - ss.message("Hello, the world") - -``` -''') \ No newline at end of file diff --git a/locales/zh/pages/003 Content Display/demo_sqlite.py b/locales/zh/pages/003 Content Display/demo_sqlite.py deleted file mode 100644 index 095bd50db87b470e98e8875e50ca0989464c1989..0000000000000000000000000000000000000000 --- a/locales/zh/pages/003 Content Display/demo_sqlite.py +++ /dev/null @@ -1,39 +0,0 @@ -### Sqlite 数据库 -import simplestart as ss - -ss.md("## ss.sqlite 数据库") - -ss.space() -ss.md(''' -提供 sqlite 数据库的简单操作 -''') - -ss.space() -ss.md(''' -#### 🔅 示例 -''') - -ss.md(''' -::: tip - 这个例子从sqlite数据库里读取鸢尾花数据集,并以csv表格的方式展示。 - 关于sqlite的管理,simplestart提供了一简单的内置工具,可以进行简单的增、删、改操作。 -::: -''') - -sql = ss.sqlite("./data/ss_data.db") -df = sql.pd_query("select * from iris") - -mytable = ss.table(df, editable = True)###, handlers={"current-change":current_change, "selection-change":selection_change}) - -ss.space() -ss.write("#### 代码") - -ss.md(''' -```python -import simplestart as ss - -sql = ss.sqlite("./data/ss_data.db") -data = sql.pd_query("select * from HousingData") -ss.write(data) -``` -''') diff --git a/locales/zh/pages/003 Content Display/demo_table.py b/locales/zh/pages/003 Content Display/demo_table.py deleted file mode 100644 index fefeafefd442f1fff6fab40ea70235e5a15868e5..0000000000000000000000000000000000000000 --- a/locales/zh/pages/003 Content Display/demo_table.py +++ /dev/null @@ -1,252 +0,0 @@ -### Table 表格 -import simplestart as ss -import pandas as pd - -ss.md("## ss.table 表格数据") - -ss.md("以表格方式显示数据") - -ss.space() - -ss.md(''' -#### 🔅 示例 -''') - -''' -这里mytable.update会引起前端重新获取getcontent, 包括数据。真实情况不是这样,用户只能在初始时改变参数,所以不会造成频繁获取数据 -''' -def onchange_index(event): - value = event.value - - if value == True: - ss.getcm().components[mytable.id]["content"]["index"] = True - ss.session["showIndex"] = ', index = True' - else: - ss.getcm().components[mytable.id]["content"]["index"] = False - ss.session["showIndex"] = '' - mytable.update() - -def onchange_border(event): - value = event.value - - if value == True: - ss.getcm().components[mytable.id]["content"]["border"] = True - ss.session["showBorder"] = ', border = True' - else: - ss.getcm().components[mytable.id]["content"]["border"] = False - ss.session["showBorder"] = '' - mytable.update() - - -def onchange_sortable(event): - value = event.value - - if value == True: - ss.getcm().components[mytable.id]["content"]["sortable"] = True - ss.session["sortable"] = ', sortable = True' - else: - ss.getcm().components[mytable.id]["content"]["sortable"] = False - ss.session["sortable"] = '' - mytable.update() - -def onchange_searchable(event): - value = event.value - - if value == True: - ss.getcm().components[mytable.id]["content"]["searchable"] = True - ss.session["searchable"] = ', searchable = True' - else: - ss.getcm().components[mytable.id]["content"]["searchable"] = False - ss.session["searchable"] = '' - mytable.update() - - -def onchange_selectable(event): - value = event.value - - if value == True: - ss.getcm().components[mytable.id]["content"]["selectable"] = True - ss.session["selectable"] = ', selectable = True' - else: - ss.getcm().components[mytable.id]["content"]["selectable"] = False - ss.session["selectable"] = '' - mytable.update() - -def onchange_editable(event): - value = event.value - - if value == True: - ss.getcm().components[mytable.id]["content"]["editable"] = True - ss.session["editable"] = ', editable = True' - else: - ss.getcm().components[mytable.id]["content"]["editable"] = False - ss.session["editable"] = '' - mytable.update() - - -def current_change(state, value): - ss.session["row_selected"] = value["index"] - -def selection_change(state, value): - ss.session["selection_change"] = value["selected"] - - -# 创建一个包含三列的数据集 -data = {'name': ['👧🏻 Alice', '👦🏻 Bob', '👦🏻 Charlie'], - 'age': [25, 30, 35], - 'city': ['New York', 'San Francisco', 'Los Angeles'], - 'health':[90,80,90] - } - -df = pd.DataFrame(data) - -def rowclicked(event): - #ss.message("row clicked") - #ss.write("event", event) - ss.session["itemname"] = event.value["name"] - - -cols = ss.columns([70,"flex:30; border-left:1px solid lightgray"], design=True, style="border:1px solid lightgray") -with cols[0]: - mytable = ss.table(df, handlers={"click:row": rowclicked}) - ss.md("#### Events") - ss.write("Row clicked: @itemname") - - -with cols[1]: - ss.text("setting") - ss.checkbox("索引", onchange = onchange_index) - ss.space() - ss.checkbox("边框", onchange = onchange_border) - ss.space() - ss.checkbox("排序", onchange = onchange_sortable) - ss.space() - ss.checkbox("选择", onchange = onchange_selectable) - ss.space() - ss.checkbox("搜索", onchange = onchange_searchable) - ss.space() - ss.checkbox("编辑", onchange = onchange_editable) - -ss.space("mt-8") - -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -def current_change(state, value): - ss.session["row_selected"] = value["index"] - -def selection_change(state, value): - ss.session["selection_change"] = value["selected"] - -data = {'name': ['Alice', 'Bob', 'Charlie'], - 'age': [25, 30, 35], - 'city': ['New York', 'San Francisco', 'Los Angeles']} -df = pd.DataFrame(data) - -ss.table(df, handlers={\"current-change\":current_change, \"selection-change\":selection_change}) -ss.md(\"#### Events\") -ss.write(\"Row selected: \") -ss.write(\"Selection changed: \") - -def onPageLoad(): - ss.session["row_selected"] = '' - ss.session["selection_change"] = '' - -``` -''') - - -ss.md(''' ---- -#### 🔅 示例 - 自定义列 -''') - - -data = {'name': ['👧🏻 Alice', '👦🏻 Bob', '👦🏻 Charlie'], - 'age': [25, 30, 35], - 'city': [':sunny: New York', ':cloud: San Francisco', ':sunny: Los Angeles'], - 'health':[90,80,90] - } - -df = pd.DataFrame(data) - -cols = ss.columns([70,"flex:30; border-left:1px solid lightgray"], design=True, style="border:1px solid lightgray") - - -vuecode = ''' - -''' - -vuecode = "../components/mycell.vue" - -#mytable_ex = ss.table(df, custom_columns = ["city"], custom_columns_template = vuestr) -with cols[0]: - mytable_ex = ss.table(df, custom_columns = ["city"], vue_columns = ["health"], vue_code = vuecode) -with cols[1]: - ss.write("每一列可以定制显示") - -ss.space("mt-8") - -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -data = {'name': ['👧🏻 Alice', '👦🏻 Bob', '👦🏻 Charlie'], - 'age': [25, 30, 35], - 'city': [':sunny: New York', ':cloud: San Francisco', ':sunny: Los Angeles'], - 'health':[90,80,90] - } -df = pd.DataFrame(data) - -vuestr = \''' - - - -\''' - -ss.table(df, custom_columns = ["city"], vue_columns = ["health"], vue_code = vuecode) -``` -''') - -def onPageLoad(): - ss.session["show_border"] = '' - ss.session["selectable"] = '' - ss.session["sortable"] = '' - ss.session["row_selected"] = '' - ss.session["selection_change"] = '' \ No newline at end of file diff --git a/locales/zh/pages/003 Content Display/demo_text.py b/locales/zh/pages/003 Content Display/demo_text.py deleted file mode 100644 index 7452df43601082b4f1b536fb7dd758cbdc458b5c..0000000000000000000000000000000000000000 --- a/locales/zh/pages/003 Content Display/demo_text.py +++ /dev/null @@ -1,35 +0,0 @@ -### Text 文本 -import streamsync as ss - -ss.md("## ss.text 文本") -ss.md("支持style参数") - - -ss.space() -ss.space() -ss.md(''' -#### 🔅 示例 -''') - -ss.md("---") - -#基本用法 -test = ss.text("hello, world") - -#改变颜色 -ss.text("This is a red string", style="color:red") - -ss.space() -ss.write("#### 🔎 代码") - -ss.md(''' -```python -import simplestart as ss - -#基本用法 -test = ss.text("hello, world") - -#改变颜色 -ss.text("This is a red string", style="color:red") -``` -''') \ No newline at end of file diff --git a/locales/zh/pages/003 Content Display/demo_video.py b/locales/zh/pages/003 Content Display/demo_video.py deleted file mode 100644 index 9211b6d80ee932f52ac24df304dc4149fd97402d..0000000000000000000000000000000000000000 --- a/locales/zh/pages/003 Content Display/demo_video.py +++ /dev/null @@ -1,36 +0,0 @@ -### Video 视频播放 -import streamsync as ss - -ss.md("## ss.video 视频播放") - -ss.md("支持播放mp4等格式的视频") - -ss.md(''' -#### 🔅 示例 -''') - -src = "https://media.w3.org/2010/05/sintel/trailer.mp4" - -player = ss.video(src, style="width:50%") - -ss.text("来源: https://media.w3.org/2010/05/sintel/trailer.mp4", style="color:gray") - -ss.space("mt-8") - -ss.write(''' ---- -#### 🔎 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -src = "https://media.w3.org/2010/05/sintel/trailer.mp4" - -player = ss.video(src, style="width:100%; max-width:640px") - -#修改视频地址 -#player.src = "..." -``` -''') diff --git a/locales/zh/pages/003 Content Display/demo_write.py b/locales/zh/pages/003 Content Display/demo_write.py deleted file mode 100644 index 56fc3a09684b87924276111a5c11b3539a4df4ee..0000000000000000000000000000000000000000 --- a/locales/zh/pages/003 Content Display/demo_write.py +++ /dev/null @@ -1,78 +0,0 @@ -### Write 输出数据 - -import streamsync as ss -import pandas as pd - -ss.md("## ss.write 输出") - -ss.md("ss.write 类似于print,可以输出文本,列表和其它类型,方便测试和输出") - -ss.space() - -ss.md(''' -#### 🔅 示例 -''') - - -ss.md("#### 1. 输出文本") -ss.write("This is a text") - -ss.md(''' -```python -ss.write("This is a text") -``` -''') - -ss.md("#### 2. 输出多个变量") -a = "aaa" -b = "bbb" -ss.write(a, ",", b) - -ss.md(''' -```python -a = "aaa" -b = "bbb" -ss.write(a, ",", b) -``` -''') - -ss.md("#### 3. 输出列表") -data = ["aaa", "bbb", "ccc"] -ss.write(data) - -data = {"aaa":1, "bbb":2, "ccc":3} -ss.write(data) - -ss.md(''' -```python -data = ["aaa", "bbb", "ccc"] -ss.write(data) - -data = {"aaa":1, "bbb":2, "ccc":3} -ss.write(data) -``` -''') - - -ss.md("#### 4. 输出表格") -# 创建数据 -data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], - 'age': [25, 30, 35, 40], - 'city': ['New York', 'Paris', 'London', 'Sydney']} - -# 将数据转换为 DataFrame 格式 -df = pd.DataFrame(data) -ss.write(df) - -ss.md(''' -```python -# 创建数据 -data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], - 'age': [25, 30, 35, 40], - 'city': ['New York', 'Paris', 'London', 'Sydney']} - -# 将数据转换为 DataFrame 格式 -df = pd.DataFrame(data) -ss.write(df) -``` -''') \ No newline at end of file diff --git a/locales/zh/pages/003 Content Display/folder.json b/locales/zh/pages/003 Content Display/folder.json deleted file mode 100644 index b7ea8a0e2ae396a2cdf53e6a9e0ffcb679394e61..0000000000000000000000000000000000000000 --- a/locales/zh/pages/003 Content Display/folder.json +++ /dev/null @@ -1 +0,0 @@ -{"alias":"数据展示"} \ No newline at end of file diff --git a/locales/zh/pages/004 Chart Data/demo_bokeh.py b/locales/zh/pages/004 Chart Data/demo_bokeh.py deleted file mode 100644 index 4e21eeaf76fd7d46c9b4f137a1f22e084aea76b9..0000000000000000000000000000000000000000 --- a/locales/zh/pages/004 Chart Data/demo_bokeh.py +++ /dev/null @@ -1,128 +0,0 @@ -import simplestart as ss - -from bokeh.plotting import figure -from bokeh.models import ColumnDataSource -from bokeh.resources import CDN -from bokeh.embed import file_html -from sklearn.datasets import load_iris -import pandas as pd - -# 加载 Iris 数据集 -iris = load_iris() -df = pd.DataFrame(data=iris.data, columns=iris.feature_names) -df['species'] = iris.target -df['species'] = df['species'].map({0: 'setosa', 1: 'versicolor', 2: 'virginica'}) - - -# 创建图形数据源和图形对象 -source = ColumnDataSource(data=dict( - sepal_length=df['sepal length (cm)'], - sepal_width=df['sepal width (cm)'], - petal_length=df['petal length (cm)'], - petal_width=df['petal width (cm)'], - species=df['species'] -)) - -# 创建 Bokeh 图表 -p = figure(title="Iris 数据集散点图", x_axis_label='花萼长度 (cm)', y_axis_label='花萼宽度 (cm)', - tools="pan,wheel_zoom,box_zoom,reset,hover,save", width = 800) - -# 根据种类设置不同颜色 -colors = {'setosa': 'blue', 'versicolor': 'green', 'virginica': 'red'} - -for species, color in colors.items(): - df_species = df[df['species'] == species] - source_species = ColumnDataSource(data=dict( - sepal_length=df_species['sepal length (cm)'], - sepal_width=df_species['sepal width (cm)'] - )) - p.scatter('sepal_length', 'sepal_width', source=source_species, legend_label=species, color=color, - size=10, alpha=0.5) - -p.legend.title = 'Species' -p.legend.location = 'top_left' - -# 将 Bokeh 图形嵌入到 Streamlit -html = file_html(p, CDN, "Iris 数据集散点图") - -#ui -ss.md(''' -## simplestart 图表演示 - bokeh -''') - -ss.space() -ss.md(''' -#### 🔅 示例 -利用bokeh展示Iris数据的交互式散点图 -''') - -ss.space() -ss.htmlview(html, border = False) - -ss.space() -ss.write("#### 🔎 代码") - -def viewcode(): - ss.session["viewcode"] = 1 - -ss.session["viewcode"] = 0 -ss.button("查看", size="small", onclick = viewcode) - -def conditioner(event): - return (ss.session["viewcode"] == 1) - -code = ''' -```python -import simplestart as ss - -from bokeh.plotting import figure -from bokeh.models import ColumnDataSource -from bokeh.resources import CDN -from bokeh.embed import file_html -from sklearn.datasets import load_iris -import pandas as pd - -# 加载 Iris 数据集 -iris = load_iris() -df = pd.DataFrame(data=iris.data, columns=iris.feature_names) -df['species'] = iris.target -df['species'] = df['species'].map({0: 'setosa', 1: 'versicolor', 2: 'virginica'}) - - -# 创建图形数据源和图形对象 -source = ColumnDataSource(data=dict( - sepal_length=df['sepal length (cm)'], - sepal_width=df['sepal width (cm)'], - petal_length=df['petal length (cm)'], - petal_width=df['petal width (cm)'], - species=df['species'] -)) - -# 创建 Bokeh 图表 -p = figure(title="Iris 数据集散点图", x_axis_label='花萼长度 (cm)', y_axis_label='花萼宽度 (cm)', - tools="pan,wheel_zoom,box_zoom,reset,hover,save", width = 800) - -# 根据种类设置不同颜色 -colors = {'setosa': 'blue', 'versicolor': 'green', 'virginica': 'red'} - -for species, color in colors.items(): - df_species = df[df['species'] == species] - source_species = ColumnDataSource(data=dict( - sepal_length=df_species['sepal length (cm)'], - sepal_width=df_species['sepal width (cm)'] - )) - p.scatter('sepal_length', 'sepal_width', source=source_species, legend_label=species, color=color, - size=10, alpha=0.5) - -p.legend.title = 'Species' -p.legend.location = 'top_left' - -# 将 Bokeh 图形嵌入到 Streamlit -html = file_html(p, CDN, "Iris 数据集散点图") - -#ui -ss.htmlview(html, border = False) -''' - -with ss.when(conditioner): - ss.md(code) \ No newline at end of file diff --git a/locales/zh/pages/004 Chart Data/demo_pyplot.py b/locales/zh/pages/004 Chart Data/demo_pyplot.py deleted file mode 100644 index 622805439fcfc7fe0f6fe9914adc51ac9bfac869..0000000000000000000000000000000000000000 --- a/locales/zh/pages/004 Chart Data/demo_pyplot.py +++ /dev/null @@ -1,133 +0,0 @@ -import streamsync as ss - -import seaborn as sns -import matplotlib as mpl -#mpl.use("Agg") #很重要,否则在ss中会崩溃 -import matplotlib.pyplot as plt - - -#下载不了,所以加一个参数data_home -data_home = "./data/seaborn" - -ss.md(''' -## ss.pyplot 绘图 -''') - - -ss.space() -ss.md(''' -#### 🔅 示例 -''') - -ss.write("#### 1. 画折线图") - -sns.set_style("whitegrid") -titanic = sns.load_dataset("titanic", data_home=data_home) -sns.lineplot(x="age", y="fare", hue="sex", data=titanic) -plt.show() - -fig = plt.gcf() -ss.pyplot(fig, style="border:1px solid gray; width:600px") - -ss.write("#### 2. 画散点图") - -sns.set_style("whitegrid") -tips = sns.load_dataset("tips", data_home=data_home) -sns.scatterplot(x="total_bill", y="tip", data=tips) -plt.show() - -fig = plt.gcf() -ss.pyplot(fig, style="border:1px solid gray; width:600px") - -ss.write("#### 3. 画条形图") - -sns.set_style("whitegrid") -titanic = sns.load_dataset("titanic",data_home=data_home) -sns.barplot(x="class", y="survived", data=titanic) -plt.show() - -fig = plt.gcf() -ss.pyplot(fig, style="border:1px solid gray; width:600px") - - -ss.write("#### 4. 画直方图") -sns.set_style("whitegrid") -titanic = sns.load_dataset("titanic",data_home=data_home) -sns.histplot(x="age", data=titanic) -plt.show() - -fig = plt.gcf() -ss.pyplot(fig, style="border:1px solid gray; width:600px") - - -ss.space() - -ss.write("#### 🔎 代码") -ss.write("---") - -def viewcode(): - ss.session["viewcode"] = 1 - -ss.button("查看", size="small", onclick = viewcode) - - -def conditioner(event): - return ss.session["viewcode"] == 1 - -with ss.when(conditioner): - ss.md(''' -```python -import streamsync as ss - -import seaborn as sns -import matplotlib as mpl -mpl.use("Agg") #很重要,否则在ss中会崩溃 -import matplotlib.pyplot as plt - - -#下载不了,所以加一个参数data_home -data_home = "./data/seaborn" - - -ss.write("#### 1. 画折线图") - -sns.set_style("whitegrid") -titanic = sns.load_dataset("titanic", data_home=data_home) -sns.lineplot(x="age", y="fare", hue="sex", data=titanic) -plt.show() - -fig = plt.gcf() -ss.pyplot(fig, style="border:1px solid gray; width:600px") - -ss.write("#### 2. 画散点图") - -sns.set_style("whitegrid") -tips = sns.load_dataset("tips", data_home=data_home) -sns.scatterplot(x="total_bill", y="tip", data=tips) -plt.show() - -fig = plt.gcf() -ss.pyplot(fig, style="border:1px solid gray; width:600px") - -ss.write("#### 3. 画条形图") - -sns.set_style("whitegrid") -titanic = sns.load_dataset("titanic",data_home=data_home) -sns.barplot(x="class", y="survived", data=titanic) -plt.show() - -fig = plt.gcf() -ss.pyplot(fig, style="border:1px solid gray; width:600px") - - -ss.write("#### 4. 画直方图") -sns.set_style("whitegrid") -titanic = sns.load_dataset("titanic",data_home=data_home) -sns.histplot(x="age", data=titanic) -plt.show() - -fig = plt.gcf() -ss.pyplot(fig, style="border:1px solid gray; width:600px") -``` - ''') - diff --git a/locales/zh/pages/004 Chart Data/folder.json b/locales/zh/pages/004 Chart Data/folder.json deleted file mode 100644 index de99b43ae63f7860772e0b4cc3a538d67d03acb5..0000000000000000000000000000000000000000 --- a/locales/zh/pages/004 Chart Data/folder.json +++ /dev/null @@ -1 +0,0 @@ -{"alias":"图表数据"} \ No newline at end of file diff --git a/locales/zh/pages/005 Layout Related/demo_columns.py b/locales/zh/pages/005 Layout Related/demo_columns.py deleted file mode 100644 index 1660bdf67af3a495e20c7d31c81e123bff72018f..0000000000000000000000000000000000000000 --- a/locales/zh/pages/005 Layout Related/demo_columns.py +++ /dev/null @@ -1,100 +0,0 @@ -### Columns 列布局 -import streamsync as ss - -ss.md("## ss.columns 列布局") - -ss.space() -ss.md("#### 🔅 示例") - -ss.space() - -ss.md("### 平均间距") - -def onchange1(event): - #cols_ex1.design = True - cols_ex1_id = cols1[0].id #通过cols_ex1不能直接得到 - - if event.value == True: - ss.getcm().components[cols_ex1_id]["content"]["options"]["border"] = True - ss.session["cols1_design"] = ', border = True' - else: - ss.getcm().components[cols_ex1_id]["content"]["options"]["border"] = False - ss.session["cols1_design"] = '' - ss.update_cm(cols_ex1_id) - -ss.checkbox("border", checked = True, onchange = onchange1) - -cols1 = ss.columns(2, border=True) - -with cols1[0]: - ss.text("First of two columns") - -with cols1[1]: - ss.text("Second of two columns") - - -ss.space() -ss.write("---") -ss.write("#### 🔎 代码") -ss.md(''' -```python -import simplestart as ss - -cols1 = ss.columns(2, border = True) - -with cols1[0]: - ss.text("First of two columns") - -with cols1[1]: - ss.text("Second of two columns") -``` -''') - -ss.space() - - -ss.md("### 按比例间距") - -def onchange2(event): - #cols_ex1.design = True - cols_ex2_id = cols2[0].id #通过cols_ex1不能直接得到 - - if event.value == True: - ss.getcm().components[cols_ex2_id]["content"]["options"]["border"] = True - ss.session["cols2_design"] = ', border = True' - else: - ss.getcm().components[cols_ex2_id]["content"]["options"]["border"] = False - ss.session["cols2_design"] = '' - ss.update_cm(cols_ex2_id) - - -ss.checkbox("border", checked = True, onchange = onchange2) - -cols2 = ss.columns([4,6], border = True) - -with cols2[0]: - ss.text("First of two columns") -with cols2[1]: - ss.text("Second of two columns") - - -ss.space() -ss.write("---") -ss.write("#### 🔎 代码") -ss.md(''' -```python -import simplestart as ss - -cols1 = ss.columns([4,6], border = True) - -with cols1[0]: - ss.text("First of two columns") - -with cols1[1]: - ss.text("Second of two columns") -``` -''') - -def onPageLoad(): - ss.session["cols1_design"] = '' - ss.session["cols2_design"] = '' \ No newline at end of file diff --git a/locales/zh/pages/005 Layout Related/demo_row.py b/locales/zh/pages/005 Layout Related/demo_row.py deleted file mode 100644 index 38f4ad58c60cc70547eebb9bfd2c03080489ce00..0000000000000000000000000000000000000000 --- a/locales/zh/pages/005 Layout Related/demo_row.py +++ /dev/null @@ -1,102 +0,0 @@ -### Row 行布局 - -import streamsync as ss - -ss.md("## ss.row 行布局") - -ss.space() -ss.md("#### 🔅 示例") -ss.write("通过 ss.row 将两个按钮限制在一行内显示,同时利用ss.spacer 改变按钮的布局") - -ss.space() - -def onchange1(): - pass - - -#ui - -style = "background:#d3d3d354; padding:5px;" - -ss.space() -ss.write("#### 1. Normal") -ss.space() -with ss.row(style=style): - ss.button("button1") - ss.button("button2") - -ss.space() -ss.write("#### 2. Center") -ss.space() -with ss.row(style=style): - ss.spacer() - ss.button("button1") - ss.button("button2") - ss.spacer() - -ss.space() -ss.write("#### 3. Right align") -ss.space() -with ss.row(style=style): - ss.spacer() - ss.button("button1") - ss.button("button2") - -ss.space() -ss.write("#### 4. Right respectively") -ss.space() -with ss.row(style=style): - ss.spacer() - ss.button("button1") - ss.spacer() - ss.button("button2") - - -ss.space("mt-16") -ss.write("#### 🔎 代码") - -ss.md(''' -```python -import simplestart as ss - -style = "background:#d3d3d354; padding:5px;" -ss.space() -ss.write("#### 1. Normal") -ss.space() -with ss.row(style=style): - ss.button("button1") - ss.button("button2") - -ss.space() -ss.write("#### 2. Center") -ss.space() -with ss.row(style=style): - ss.spacer() - ss.button("button1") - ss.button("button2") - ss.spacer() - -ss.space() -ss.write("#### 3. Right align") -ss.space() -with ss.row(style=style): - ss.spacer() - ss.button("button1") - ss.button("button2") - -ss.space() -ss.write("#### 4. Right respectively") -ss.space() -with ss.row(style=style): - ss.spacer() - ss.button("button1") - ss.spacer() - ss.button("button2") - -''') - -ss.md(''' -::: tip - ss.space 表示增加间距, ss.spacer 是用来填补间距达到修改布局的作用 -::: -''') \ No newline at end of file diff --git a/locales/zh/pages/005 Layout Related/demo_section.py b/locales/zh/pages/005 Layout Related/demo_section.py deleted file mode 100644 index 260dc57c659d8d2d3f1fa840cd5e0d7cf87da8af..0000000000000000000000000000000000000000 --- a/locales/zh/pages/005 Layout Related/demo_section.py +++ /dev/null @@ -1,81 +0,0 @@ -### Section 一般容器 -import simplestart as ss - -ss.md("## ss.section 容器") - -ss.md("section 父容器, 可以装载其它组件, 支持style参数") - - -ss.space() -ss.md(''' -#### 🔅 示例 -''') - -#api -def clear(): - section.empty() - -def write_something(): - section.text("Hello, I am inside section 2") - -#ui -with ss.section("Section1", shadow = 10, border = True, rounded=True, width = "50%", height=300): - ss.text("This is inside the section 1") - - -ss.space() - -section = ss.section() -section.text("This is inside the section 2") - -ss.space("mt-4 mb-4") -ss.text("outside the section") - - -ss.md("---") - -ss.button("clear", onclick=clear) - -ss.button("add something", onclick=write_something) - -ss.space() - -ss.write("#### 🔎 代码") - -ss.md(""" -```python -import simplestart as ss - -#api -def clear(): - section.empty() - -def write_something(): - section.text("Hello, I am inside section 2") - -#ui -with ss.section(title = "Section1", shadow = 10, border = True, rounded=True, width = "50%", height=300): - ss.text("This is inside the section 1") - - -ss.space() - -section = ss.section() -section.text("This is inside the section 2") - -ss.space() -ss.text("outside the section") - -ss.md("---") - -ss.button("clear", onclick=clear) -ss.button("add something", onclick=write_something) - -``` -""") - -ss.md(''' -::: tip - 除了可以通过 with 语法添加组件,也可以直接通过section.text(), section.button()等方式添加容器内的组件 -::: -''') \ No newline at end of file diff --git a/locales/zh/pages/005 Layout Related/demo_sidebar.py b/locales/zh/pages/005 Layout Related/demo_sidebar.py deleted file mode 100644 index 11b1513f54dc4d6130464d2b0b40e2b6dfe1ec07..0000000000000000000000000000000000000000 --- a/locales/zh/pages/005 Layout Related/demo_sidebar.py +++ /dev/null @@ -1,53 +0,0 @@ -### Sidebar 侧边栏 -import simplestart as ss - -ss.md("## ss.sidebar 侧边栏") - -ss.md("在屏幕左侧的侧边栏内显示各种组件,例如可以放置数据控制和一些设置。") - -ss.md(''' -#### 🔅 示例 -''') - - -sidebar = ss.sidebar() - -with sidebar: - ss.button("click") - ss.selectbox(["one", "two", "three"]) - - -def testme(state, value): - with sidebar: - ss.text("text in sidebar") - - -ss.button("test", onclick = testme) - - -ss.space() - -ss.write("#### 🔎 代码") - -ss.md(''' -```python -import simplestart as ss - -sidebar = ss.sidebar() - -with sidebar: - ss.button("click") - ss.selectbox(["one", "two", "three"]) - - -def testme(state, value): - with sidebar: - ss.text("text in sidebar") - #or - #sidebar.text("text in sidebar") - - -ss.button("test", onclick = testme) - -``` -''') \ No newline at end of file diff --git a/locales/zh/pages/005 Layout Related/demo_style.py b/locales/zh/pages/005 Layout Related/demo_style.py deleted file mode 100644 index 2b074870e21942e28331c665ad97909cc3f02547..0000000000000000000000000000000000000000 --- a/locales/zh/pages/005 Layout Related/demo_style.py +++ /dev/null @@ -1,68 +0,0 @@ -### Style 样式设置 -import simplestart as ss - -ss.md("## ss.style 样式设置") - -ss.space() -ss.md("#### 🔅 示例") -ss.write("向 HTML 文档中注入 CSS 样式") - -ss.html(''' -
this is a sample1
-
this is a sample2
-''') - - -ss.style(''' - .test1{ - background-color:lightgray; - padding:5px; - width:150px; - margin-bottom:10px; - border:1px solid lightblue - } - .test2{ - color:red; - border:1px solid lightgreen; - padding:5px; - width:150px; - } -''') - -ss.space() - -ss.write("#### 🔎 代码") - - -ss.space() - -ss.write(''' ---- -#### 代码 -''') - -ss.md(''' -```python -import simplestart as ss - -ss.html(\''' -
this is a sample1
-
this is a sample2
-\''') - -ss.style(\''' - .test1{ - background-color:lightgray; - padding:5px; - width:150px; - margin-bottom:10px; - border:1px solid lightblue - } - .test2{ - color:red; - border:1px solid lightgreen; - padding:5px; - width:150px; - } -\''') -''') diff --git a/locales/zh/pages/005 Layout Related/demo_tabs.py b/locales/zh/pages/005 Layout Related/demo_tabs.py deleted file mode 100644 index 04aad30f7d656e10cebe8ccfe3332baa88078337..0000000000000000000000000000000000000000 --- a/locales/zh/pages/005 Layout Related/demo_tabs.py +++ /dev/null @@ -1,35 +0,0 @@ -### Tabs 标签页 -import simplestart as ss - -ss.md("## ss.tabs 标签页") - -ss.space("mt-16") -ss.md("#### 🔅 示例") - -tabtitles = ["tab1", "tab2", "tab3"] -tabs = ss.tabs(tabtitles) - -with tabs[0]: - ss.text("this is tab 1") -with tabs[1]: - ss.text("this is tab 2") -with tabs[2]: - ss.text("this is tab 3") - -ss.space() -ss.write("#### 🔎 代码") - -ss.md(''' -```python -import simplestart as ss - -tabtitles = ["tab1", "tab2", "tab3"] -tabs = ss.tabs(tabtitles) - -with tabs[0]: - ss.text("this is tab 1") -with tabs[1]: - ss.text("this is tab 2") -with tabs[2]: - ss.text("this is tab 3") -''') diff --git a/locales/zh/pages/005 Layout Related/folder.json b/locales/zh/pages/005 Layout Related/folder.json deleted file mode 100644 index ccea478c0d69e1ab010ee1db3e9c2a5183542485..0000000000000000000000000000000000000000 --- a/locales/zh/pages/005 Layout Related/folder.json +++ /dev/null @@ -1 +0,0 @@ -{"alias":"布局相关"} \ No newline at end of file diff --git a/locales/zh/pages/006 Advanced Usage/demo_component.py b/locales/zh/pages/006 Advanced Usage/demo_component.py deleted file mode 100644 index 4a93297a432ad8338a48e4e7c2031f8763439a29..0000000000000000000000000000000000000000 --- a/locales/zh/pages/006 Advanced Usage/demo_component.py +++ /dev/null @@ -1,101 +0,0 @@ -### ss.component 自定义组件 -import simplestart as ss - -ss.md("### ss.component") -ss.md("可以通过html,js, css自定义组件,通过iframe实现") - -ss.space() -ss.md(''' -#### 🔅 示例 -''') -ss.space() - -def testme(state, value): - mytext.text = "接收到的前端UI的数据: " + value["value"] - -#默认情况下,