tabs - 无法更改 KivyMD 中的选项卡文本和图标颜色
问题描述
我正在尝试学习如何使用 KivyMD 进行编程。在做了一些研究并观看了一些教程之后,我将 GUI 与跟踪和错误方法结合在一起。
目前我正在尝试更改选项卡文本和图标的颜色。经过数小时的在线搜索,我仍然无法更改它们。.kv 文件中的 and 似乎对它们没有影响text_color_normal:
。text_color_active:
我觉得我在这里做一些根本错误的事情。有人可以给我一些提示如何进行吗?Main.py 和 .KV 文件如下。
提前致谢!
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.screenmanager import ScreenManager, Screen
from kivymd.uix.tab import MDTabsBase
from kivymd.font_definitions import fonts
from kivymd.icon_definitions import md_icons
from kivy.uix.floatlayout import FloatLayout
from kivy.properties import ObjectProperty
from kivy.uix.widget import Widget
Window.size = (300, 500) # voor develop doeleinden mobielscherm
class Screen1(Screen):
pass
class Screen2(Screen):
pass
class Screen3(Screen):
pass
class Screen4(Screen):
pass
class Tab(FloatLayout, MDTabsBase):
pass
class Tab1(FloatLayout, MDTabsBase):
pass
class DemoApp(MDApp):
def build(self):
self.theme_cls.primary_palette = 'Red'
screen = Builder.load_file('demo_file.kv')
return screen
def navigation_draw(self):
print('navigation')
DemoApp().run()
演示文件.kv
Screen:
NavigationLayout:
ScreenManager:
id:screen_manager
Screen1:
name: 'home_screen'
BoxLayout:
orientation: 'vertical'
MDToolbar:
title: 'Home'
left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
elevation: 0
specific_text_color: 0,0,0,1
MDTabs:
id:android_tabs
tab_bar_height: '35dp'
background_color: 1,0,0,0.85
elevation: 0
text_color_normal: 0, 1, 0, 1
text_color_active: 1, 0, 0, 1
color_indicator: 0.95, 0.95, 0.1, 1
Tab:
text: 'Tab1'
Tab1:
text: 'chart-pie'
MDBottomAppBar:
MDToolbar:
title: 'Start sessie'
mode: 'end'
type: 'bottom'
on_action_button: app.navigation_draw()
icon: 'beer'
icon_color: 0.95, 0.95, 0.1, 1
Screen2:
name: 'profile_screen'
BoxLayout:
orientation: 'vertical'
MDToolbar:
title: 'Profiel'
left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
elevation: 7
Widget:
Screen3:
name: 'session_screen'
BoxLayout:
orientation: 'vertical'
MDToolbar:
title: 'Sessies'
left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
elevation: 10
Widget:
Screen4:
name: 'logout_screen'
BoxLayout:
orientation: 'vertical'
MDToolbar:
title: 'Uitloggen'
left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
elevation: 10
Widget:
MDNavigationDrawer:
id:nav_drawer
BoxLayout:
orientation: 'vertical'
spacing: '8dp'
padding: '8dp'
Image:
source: 'avatar.jpg'
MDLabel:
text: ' Name'
front_style: 'Subtitle1'
size_hint_y: None
height: self.texture_size[1]
MDLabel:
text: ' email@hotmail.com'
front_style: 'Caption'
size_hint_y: None
height: self.texture_size[1]
ScrollView:
MDList:
OneLineIconListItem:
text: 'Profiel'
on_press: screen_manager.current = 'profile_screen'
IconLeftWidget:
icon: 'face-profile'
on_press: screen_manager.current = 'profile_screen'
OneLineIconListItem:
text: 'Drink sessies'
on_press: screen_manager.current = 'session_screen'
IconLeftWidget:
icon: 'beer'
on_press: screen_manager.current = 'session_screen'
OneLineIconListItem:
text: 'Uitloggen'
on_press: screen_manager.current = 'logout_screen'
IconLeftWidget:
icon: 'logout'
on_press: screen_manager.current = 'logout_screen'
<Tab>:
MDLabel:
text:'tab1'
user_font_size: "48sp"
pos_hint: {"center_x": .5, "center_y": .5}
<Tab1>:
MDLabel:
text:'tab2'
user_font_size: "48sp"
pos_hint: {"center_x": .5, "center_y": .5}
解决方案
我终于弄清楚了为什么我的代码不起作用。在网上搜索时,我偶然发现了更改日志,我发现未发布的版本包含对text_color_normal
and的修复text_color_active
。这意味着在我当前的版本(0.104.1)中,参数没有按应有的方式工作。安装 KivyMDpip install https://github.com/kivymd/KivyMD/archive/master.zip
对我有用。
感谢您为解决此问题所做的努力!
推荐阅读
- swift - 如何将 .obj 和 .htl 转换为 USDZ?
- discord.js - 如何在 Discord.js 中创建已删除的消息记录器
- java - Android Studio 将 WebView 内容缩放到当前 WebView 大小(不是全屏 WebView)
- spring-boot - jasypt 解密密码在测试中有效,但在 Spring Boot 应用程序中无效
- python - 无需分割即可识别图像中的多个符号
- spring-boot - org.springframework.http.converter.HttpMessageNotWritableException:无法写入 JSON:java.lang.String 无法转换为 java.lang.Enum
- azure - Azure ML Web 服务 - 响应时间慢
- java - 从控制台读取由另一个类中的函数编写的字符串
- python - Numpy 和 Skimage 多处理
- ios - 如何使用 RxSwift 在 Moya 中重试请求?