更改Kivy小部件的文本部分的颜色

帕提卜·比斯瓦斯(Parthib Biswas)

我正在尝试编写一个程序,如果我按一个按钮,Label小部件的一部分文本的颜色就会改变。

例如,有一个标签小部件,其文本为“ 1/0”。现在,如果我按下按钮,则1的颜色将更改为某种指定的颜色。这是我尝试过的程序:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.lang import Builder
from kivy.utils import get_color_from_hex

Builder.load_string('''
#: import get_color_from_hex kivy.utils.get_color_from_hex
<b>:
    orientation: 'horizontal'
    Button:
        text: 'Press Me'
        on_press: num.text[0].color = get_color_from_hex('#04d3ff')

    Label:
        id: num
        text: '1/0'
''')

class b(BoxLayout):
    pass

class main(App):
    def build(self):
        return b()

if __name__ == "__main__":
    main().run()

这是我得到的错误:

Traceback (most recent call last):
   File "b.py", line 28, in <module>
     main().run()
   File "/usr/lib/python2.7/dist-packages/kivy/app.py", line 828, in run
     runTouchApp()
   File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 487, in runTouchApp
     EventLoop.window.mainloop()
   File "/usr/lib/python2.7/dist-packages/kivy/core/window/window_sdl2.py", line 619, in mainloop
     self._mainloop()
   File "/usr/lib/python2.7/dist-packages/kivy/core/window/window_sdl2.py", line 362, in _mainloop
     EventLoop.idle()
   File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 330, in idle
     self.dispatch_input()
   File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 315, in dispatch_input
     post_dispatch_input(*pop(0))
   File "/usr/lib/python2.7/dist-packages/kivy/base.py", line 221, in post_dispatch_input
     listener.dispatch('on_motion', etype, me)
   File "kivy/_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7699)
   File "/usr/lib/python2.7/dist-packages/kivy/core/window/__init__.py", line 1030, in on_motion
     self.dispatch('on_touch_down', me)
   File "kivy/_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7699)
   File "/usr/lib/python2.7/dist-packages/kivy/core/window/__init__.py", line 1046, in on_touch_down
     if w.dispatch('on_touch_down', touch):
   File "kivy/_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7699)
   File "/usr/lib/python2.7/dist-packages/kivy/uix/widget.py", line 432, in on_touch_down
     if child.dispatch('on_touch_down', touch):
   File "kivy/_event.pyx", line 718, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7699)
   File "/usr/lib/python2.7/dist-packages/kivy/uix/behaviors/button.py", line 110, in on_touch_down
     self.dispatch('on_press')
   File "kivy/_event.pyx", line 714, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:7654)
   File "kivy/_event.pyx", line 1224, in kivy._event.EventObservers.dispatch (kivy/_event.c:13497)
   File "kivy/_event.pyx", line 1108, in kivy._event.EventObservers._dispatch (kivy/_event.c:12329)
   File "/usr/lib/python2.7/dist-packages/kivy/lang.py", line 1557, in custom_callback
     exec(__kvlang__.co_value, idmap)
   File "<string>", line 7, in <module>
 AttributeError: 'str' object has no attribute 'color'

编辑:解决方案

这项修改适用于那些碰巧遇到类似情况并通过Google搜索进入此处的用户。Inclement的解决方案运行完美。这是kv语言的解决方案代码:

<b>:
    orientation: 'horizontal'
    Button:
        text: 'Press Me'
        on_press: num.text = "[color=#04d3ff]1[/color]/0"
        on_release: num.text = "[color=#ffffff]1[/color]/0"

    Label:
        id: num
        markup: True
        text: '1/0'
激进的

使用Kivy的基本标记语法来设置颜色以及markup: True标签中的颜色

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更改Kivy小部件的文本部分的颜色

来自分类Dev

我可以更改背景不同的文本部分的颜色吗?

来自分类Dev

Android O (26) 更改文本和小部件的颜色

来自分类Dev

我想在kivy中动态更改网格布局中小部件的颜色

来自分类Dev

Kivy在小部件之间发送文本

来自分类Dev

在Tkinter文本框小部件中更改每隔一行文本的背景颜色

来自分类Dev

Tcl / Tk:高亮显示文本小部件中的某些行或更改特定行文本的颜色

来自分类Dev

如何在“文本”小部件中更改子文本的颜色(Python)

来自分类Dev

Flutter:如何更改showTimePicker小部件的颜色

来自分类Dev

如何更改tkinter小部件的边框颜色?

来自分类Dev

更改小部件的颜色。Appcompat 21

来自分类Dev

如何更改 tkinter txt 小部件颜色

来自分类Dev

如何更改Android Switch小部件的拇指的文本颜色(开/关)?

来自分类Dev

破折号:根据对“列表”窗口小部件的输入来更改文本颜色

来自分类Dev

Python 3 Tkinter | 更改文本小部件中“:”之间单词的颜色/样式

来自分类Dev

如何更改按钮小部件的文本大小?

来自分类Dev

更改树小部件节点的文本

来自分类Dev

小部件中的文本未更改

来自分类Dev

更改树小部件节点的文本

来自分类Dev

Kivy更新小部件

来自分类Dev

Kivy删除小部件

来自分类Dev

如何在Kivy中添加滚动文本小部件?

来自分类Dev

如何使用 kivy 中的弹出窗口小部件更改屏幕?

来自分类Dev

从另一个小部件更改Kivy小部件属性

来自分类Dev

在Qt Stacked小部件的特定小部件中更改背景颜色

来自分类Dev

Android:如何在Datepicker小部件中更改dateselector的颜色?

来自分类Dev

破折号:更改小部件的背景颜色

来自分类Dev

如何更改脚手架小部件的抽屉颜色

来自分类Dev

PyQt更改活动窗口小部件突出显示颜色

Related 相关文章

  1. 1

    更改Kivy小部件的文本部分的颜色

  2. 2

    我可以更改背景不同的文本部分的颜色吗?

  3. 3

    Android O (26) 更改文本和小部件的颜色

  4. 4

    我想在kivy中动态更改网格布局中小部件的颜色

  5. 5

    Kivy在小部件之间发送文本

  6. 6

    在Tkinter文本框小部件中更改每隔一行文本的背景颜色

  7. 7

    Tcl / Tk:高亮显示文本小部件中的某些行或更改特定行文本的颜色

  8. 8

    如何在“文本”小部件中更改子文本的颜色(Python)

  9. 9

    Flutter:如何更改showTimePicker小部件的颜色

  10. 10

    如何更改tkinter小部件的边框颜色?

  11. 11

    更改小部件的颜色。Appcompat 21

  12. 12

    如何更改 tkinter txt 小部件颜色

  13. 13

    如何更改Android Switch小部件的拇指的文本颜色(开/关)?

  14. 14

    破折号:根据对“列表”窗口小部件的输入来更改文本颜色

  15. 15

    Python 3 Tkinter | 更改文本小部件中“:”之间单词的颜色/样式

  16. 16

    如何更改按钮小部件的文本大小?

  17. 17

    更改树小部件节点的文本

  18. 18

    小部件中的文本未更改

  19. 19

    更改树小部件节点的文本

  20. 20

    Kivy更新小部件

  21. 21

    Kivy删除小部件

  22. 22

    如何在Kivy中添加滚动文本小部件?

  23. 23

    如何使用 kivy 中的弹出窗口小部件更改屏幕?

  24. 24

    从另一个小部件更改Kivy小部件属性

  25. 25

    在Qt Stacked小部件的特定小部件中更改背景颜色

  26. 26

    Android:如何在Datepicker小部件中更改dateselector的颜色?

  27. 27

    破折号:更改小部件的背景颜色

  28. 28

    如何更改脚手架小部件的抽屉颜色

  29. 29

    PyQt更改活动窗口小部件突出显示颜色

热门标签

归档