![]() |
|---|
| © Karobben |
由於語法渲染問題而影響閱讀體驗, 請移步博客閱讀~
本文GitPage地址
CryptoWatch-Kivy 1.13Kivy 2.0.0Kivy-Garden 0.1.4kivy-garden.wordcloud 1.0.0kivymd 0.104.2.dev0
Navigation
Example of Navigation: KivyMD GitHub
Documentation: Kivymd
Attention: “MDNavigationLayout” was abandoned, using “NavigationLayout” as substitute.
Root:- MDNavigationLayout:+ NavigationLayout:ScreenManager:Screen_1:Screen_2:
Example 1
from kivy.lang import Builderfrom kivy.uix.boxlayout import BoxLayoutfrom kivymd.app import MDAppKV = '''Screen:NavigationLayout:ScreenManager:Screen:BoxLayout:orientation: 'vertical'MDToolbar:title: "Navigation Drawer"elevation: 10left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]Widget:MDNavigationDrawer:id: nav_drawerContentNavigationDrawer:'''class ContentNavigationDrawer(BoxLayout):passclass TestNavigationDrawer(MDApp):def build(self):return Builder.load_string(KV)TestNavigationDrawer().run()
Separate the KV and PY
mkdir Layouttree
.├── Layout│ └── Navigation_Draw.kv└── main.py1 directory, 2 files
KV file ``` MDNavigationDrawer: id: nav_drawer
```</details>```pythonfrom kivy.uix.screenmanager import Screenfrom kivymd.uix.button import MDRectangleFlatButtonfrom kivy.lang import Builderfrom kivymd.app import MDAppdef OPEN(file):return open(file).read()class MainApp(MDApp):def F_test(self, *args):print(123)def build(self):screen = Screen()Widget_navi = Builder.load_string(OPEN("Layout/Navigation_Draw.kv"))screen.add_widget(Widget_navi)screen.add_widget(MDRectangleFlatButton(text="Hello, World",pos_hint={"center_x": 0.5, "center_y": 0.5},on_release = self.F_test))return screenMainApp().run()
Tags
Example: GitHub
from kivy.uix.screenmanager import Screenfrom kivymd.uix.button import MDRectangleFlatButtonfrom kivy.lang import Builderfrom kivymd.uix.floatlayout import MDFloatLayoutfrom kivymd.uix.tab import MDTabsBasefrom kivymd.app import MDAppdef OPEN(file):return open(file).read()class Tab(MDFloatLayout, MDTabsBase):'''Class implementing content for a tab.'''class MainApp(MDApp):def F_test(self, *args):print(123)def build(self):screen = Screen()# loading Navigation (left)Widget_navi = Builder.load_string(OPEN("Layout/Navigation_Draw.kv"))# loading navigation tagsWidget_tabs = Builder.load_string(OPEN("Layout/Navigation_Tabs.kv"))self.Widget_tabs = Widget_tabsscreen.add_widget(Widget_tabs)screen.add_widget(Widget_navi)return screen# Functions for Navigation Tabdef on_start(self):Tab1 = Tab(text="alarm")Tab1.add_widget(MDRectangleFlatButton(text="Hello, World",pos_hint={"center_x": 0.5, "center_y": 0.5},))self.Widget_tabs.ids.tabs.add_widget(Tab1)self.Widget_tabs.ids.tabs.add_widget(Tab(text="alarm-bell"))# Functions for Navigation Tab Switchdef on_tab_switch(self, instance_tabs, instance_tab, instance_tab_label, tab_text):'''Called when switching tabs.:type instance_tabs: <kivymd.uix.tab.MDTabs object>;:param instance_tab: <__main__.Tab object>;:param instance_tab_label: <kivymd.uix.tab.MDTabsLabel object>;:param tab_text: text or name icon of tab;'''instance_tab.ids.label.text = tab_textMainApp().run()
KV file: Navigation_Tabs.kv``` MDToolbar: title: “Example Tabs”
MDTabs: id: tabs text: “1” on_ref_press: app.on_ref_press(*args)
1 directory, 3 files
First Function
Convert atcg to ATCG
touch Layout/Seq.kvtree
.├── Layout│ ├── Navigation_Draw.kv│ ├── Navigation_Tabs.kv│ └── Seq.kv├── lib│ └── bio_seq.py├── libWidget│ └── Seq.py└── main.py
Seq.kv``` MDBoxLayout:
id: boxsorientation: "vertical"functions: None#{"aA":"a"}label_c: 0, 0, 1, 1MDTextField:id: seq_inputhint_text: "Input DNA Hear"pos_hint: {"center_x": .5}MDIconButton:id: uppericon: "android"user_font_size: "64sp"on_release: boxs.functions#["aA"]pos_hint: {"center_x": .5}MDLabel:id: seq_resulttext: "Result shows Herer"color: boxs.label_cpos_hint: {"center_x": .5}
```</details>```python Seq.py#from kivy.lang import Builderfrom kivy.lang import Builderclass FunctionWidget():def OPEN(self, file):return open(file).read()def PP(self):#self.print(self.Function_page.ids.seq_input.text)self.Function_page.ids.seq_result.text = self.Function_page.ids.seq_input.text.upper()def main(self):self.Function_page = Builder.load_string(self.OPEN("Layout/Seq.kv"))self.Function_page.ids.upper.on_release = self.PPreturn self.Function_page
from kivy.uix.screenmanager import Screenfrom kivymd.uix.button import MDRectangleFlatButtonfrom kivy.lang import Builderfrom kivymd.uix.floatlayout import MDFloatLayoutfrom kivymd.uix.tab import MDTabsBasefrom kivymd.app import MDApp# Function libsdef OPEN(file):return open(file).read()class Tab(MDFloatLayout, MDTabsBase):'''Class implementing content for a tab.'''class MainApp(MDApp):def F_test(self, *args):print(123)def build(self):screen = Screen()# loading Navigation (left)Widget_navi = Builder.load_string(OPEN("Layout/Navigation_Draw.kv"))# loading navigation tagsWidget_tabs = Builder.load_string(OPEN("Layout/Navigation_Tabs.kv"))self.Widget_tabs = Widget_tabs# loading The Function pages# Loading Sequencs function pagescreen.add_widget(Widget_tabs)screen.add_widget(Widget_navi)return screen# Functions for Navigation Tadef on_start(self):from lib.bio_seq import Bio as FunBioSeqFun = FunBioSeq()print(Fun.List())def PP():print(Function_page.ids.seq_input.text)Function_page.ids.seq_result.text = Function_page.ids.seq_input.text.upper()Fun = FunBioSeq()List = {"Seq":{'icon':"dna",'title':"Sequencs Tools"}}Tab1 = Tab(text="Bio")Tab1.add_widget(MDRectangleFlatButton(text="Hello, World",pos_hint={"center_x": 0.5, "center_y": 0.5},))self.Widget_tabs.ids.tabs.add_widget(Tab1)for i in List.keys():tmp_tab = Tab(text=List[i]['icon'])#Function = Builder.load_string(OPEN("Layout/"+i+".kv"))from libWidget.Seq import FunctionWidgetFun = FunctionWidget()tmp_tab.add_widget(Fun.main())self.Widget_tabs.ids.tabs.add_widget(tmp_tab)# Functions for Navigation Tab Switchdef on_tab_switch(self, instance_tabs, instance_tab, instance_tab_label, tab_text):'''Called when switching tabs.:type instance_tabs: <kivymd.uix.tab.MDTabs object>;:param instance_tab: <__main__.Tab object>;:param instance_tab_label: <kivymd.uix.tab.MDTabsLabel object>;:param tab_text: text or name icon of tab;'''instance_tab.ids.label.text = tab_textMainApp().run()

GitHub Repository: Karobben Toolbox
Android Release: Karobben Toolbox
Enjoy~
本文由Python腳本GitHub/語雀自動更新
由於語法渲染問題而影響閱讀體驗, 請移步博客閱讀~
本文GitPage地址
GitHub: Karobben
Blog:Karobben
BiliBili:史上最不正經的生物狗

