【发布时间】:2021-01-13 08:28:39
【问题描述】:
我正在使用 KivyMD,我正在尝试创建一个包含图标和文本的选项卡名称 - 但它无法在我的屏幕上正确显示。
我正在尝试让一个选项卡包含以下文本:[A] Tab1(其中 [A] 是图标)。 如果单独调用该图标,它会显示正常(请参见下面屏幕截图中的第二个选项卡)。但是当它与文本结合时,它不会显示出来(它会显示一个带有 X 的框,就像它是一个无法识别的字符一样)。
https://kivymd.readthedocs.io/en/latest/components/tabs/ 中的示例通过 python 加载选项卡,但我想从 .kv 文件中执行此操作,但显然我的语法不正确,我无法弄清楚如何应用正在发生的事情在这些示例中完成。
这是我尝试显示它的不同方式的代码。为简单起见,我将所有代码都放在一个地方,但实际上 KV 组件位于单独的 .kv 文件中。
from kivy.lang import Builder
from kivymd.app import MDApp
from kivymd.uix.tab import MDTabsBase
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import Screen
KV = '''
#:import md_icons kivymd.icon_definitions.md_icons
BoxLayout:
id: boxcad
orientation: 'vertical'
MDToolbar:
id: toolcad
title: "Mainscreen"
md_bg_color: app.theme_cls.primary_color
BoxLayout:
id: tabox
orientation: 'vertical'
MDTabs:
id: itemstab
Tab:
id: tab1
name: 'tab1'
text: "Tab1"
Tab:
id: tab2
name: 'tab2'
text: 'alpha-a-box'
Tab:
id: tab3
name: 'tab3'
text: md_icons.get('alpha-a-box')
Tab:
id: tab4
name: 'tab4'
text: 'alpha-a-box' + 'Tab4'
Tab:
id: tab5
name: 'tab5'
text: md_icons.get('alpha-a-box') + ' Tab5'
Tab:
id: tab6
name: 'tab6'
text: md_icons['alpha-a-box'] + ' Tab6'
'''
class MainScreen(Screen):
pass
class Tab(BoxLayout, MDTabsBase):
"""Class implementing content for a tab."""
pass
class ExampleApp(MDApp):
def build(self):
return Builder.load_string(KV)
ExampleApp().run()
感谢您的帮助
【问题讨论】:
标签: kivymd