python - 如何在没有 KV 语言的情况下使用 MDNavigationRail + MDNavigationRailItem
问题描述
MDNavigationRail
没有 KV 语言如何创建?我尝试了这段代码,但我得到了很多错误。
class MyApp(MDApp):
def build(self):
boxlayout1 = MDBoxLayout(orientation = "vertical")
toolbar = MDToolbar(title = "Hello")
boxlayout1.add_widget(toolbar)
boxlayout2 = MDBoxLayout()
boxlayout1.add_widget(boxlayout2)
from kivymd.uix.navigationrail import MDNavigationRail, MDNavigationRailItem
navigationrail = MDNavigationRail()
navigationrail.add_widget(MDNavigationRailItem(icon="access-point"))
boxlayout2.add_widget(navigationrail)
return boxlayout1
root = MyApp()
root.run()
解决方案
您必须将对象 navigationrail 作为 MDNavigationRailItem 的参数传递。
from kivymd.app import MDApp
from kivymd.uix.label import MDLabel
from kivymd.uix.boxlayout import MDBoxLayout
from kivymd.uix.floatlayout import MDFloatLayout
from kivymd.uix.toolbar import MDToolbar
from kivy.utils import get_color_from_hex
class MyApp(MDApp):
def build(self):
boxlayout1 = MDBoxLayout(orientation = "vertical")
toolbar = MDToolbar(title = "Hello")
boxlayout1.add_widget(toolbar)
boxlayout2 = MDBoxLayout()
boxlayout1.add_widget(boxlayout2)
from kivymd.uix.navigationrail import MDNavigationRail, MDNavigationRailItem
navigationrail = MDNavigationRail(
md_bg_color = get_color_from_hex("#344954"),
# color_normal = get_color_from_hex("#718089"), #crash the app when clicking on an item, don't understand why...
color_active = get_color_from_hex("#f3ab44"),
visible = "Persistent")
for i in range(3):
item = MDNavigationRailItem(navigation_rail = navigationrail, text="item%d" %(i+1))
navigationrail.add_widget(item)
boxlayout2.add_widget(navigationrail)
return boxlayout1
root = MyApp()
root.run()
推荐阅读
- android - 如何将片段注入活动,以便我不必手动创建它的实例?
- excel - Excel - 根据列值将数据提取到新工作簿中,新工作簿应具有基于另一列值的各种工作表
- bash - 用 bash 脚本中的值替换 phantom js 中的 YAML
- python - Flask-Admin 注册时设置默认用户角色
- php - 在 Codeigniter 中调用未定义的方法 mysqli_result::result()
- amazon-web-services - SSL 证书 + Cloudfront + EC2 设置 - 重定向过多
- javascript - 在 JS 库中调用外部 Web 服务
- sql - Apache Ignite SQL 是否支持 MERGE WHEN?
- javascript - 页面加载时的jQuery手风琴打开标签
- c++ - CMake:为目标源设置目录