为什么 Kivy 微调器中的文本模糊/模糊

why is text in Kivy spinner vague / blurry

我有一个微调器用于 select 项目作为下拉菜单。文本字段中的文本本身是正常的。但是微调器项目中的文本看起来 blurry/vague,请参见附图。我该如何解决这个问题?

源文件qmonos.py:

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout

class qmonosHome(BoxLayout):


    def init_qmonos(self):

        self.objtype.text = ''
        self.objtype.values = ('Home', 'Work', 'Other', 'Custom')


class qmonosApp(App):
    def build(self):
        Window.clearcolor = (.95,.95,.95,1)
        Window.size = (800, 200)
        homeWin = qmonosHome()
        homeWin.init_qmonos()
        return homeWin
qmonosApp().run()

kivy文件qmonos.kv

# File: qmonos.kv
#:import Factory kivy.factory.Factory

#:set color_button (.5,1,1,1)
#:set color_button_pressed (0.7,0.9,1,1)
#:set color_font (1,1,1,1)


<MySpinnerOption@SpinnerOption>:
    background_color: color_button if self.state == 'down' else color_button_pressed
    color: color_font
    font_size: 12
    text_size: self.width - 10, self.height
    height: 25

<qmonosHome>:
    objtype:objtype

    BoxLayout:
        orientation: "horizontal"
        padding: 10,10,10,10

        BoxLayout
            orientation: "vertical"
            size_hint: 0.5,1

            BoxLayout:
                orientation: "horizontal"
                height: "20dp"
                size_hint_y: None

                Label:
                    text: "Hello World"
                    size_hint: 1,1
                    size: self.texture_size
                    halign: 'left'
                    valign: 'middle'
                    font_size: 12
                    color: .3,.3,.3,1
        BoxLayout
            orientation: "vertical"
            size_hint: 0.5,1
            padding: 10,0,10,0

            BoxLayout:
                orientation: "horizontal"
                height: "20dp"
                size_hint_y: None

                Label:
                    text: "Type Object:"
                    size_hint: 0.25,1
                    size: self.texture_size
                    halign: 'left'
                    valign: 'middle'
                    font_size: 12
                    color: .3,.3,.3,1

                Spinner:
                    id: objtype
                    text: ''
                    background_color: color_button if self.state == 'normal' else color_button_pressed
                    color: color_font
                    option_cls: Factory.get("MySpinnerOption")
                    font_size: 12
                    text_size: self.width - 10, self.height
                    size_hint: 0.25,1
                    multiline: False
                    foreground_color: .3,.3,.3,1
                    disabled_foreground_color: .3,.3,.3,1

                Label:
                    text: "Hello too"
                    size_hint: 0.5,1
                    size: self.texture_size
                    halign: 'left'
                    valign: 'middle'
                    font_size: 12
                    color: .3,.3,.3,1

这是 Kivy 中的一个已知问题,显然尚未修复。有关此案例的更多信息,请参阅这些链接:GitHub, Google Groups, Bountysource。他们说问题是文本没有绘制在整个像素上,而是绘制在像素的一部分上。
在您的情况下,一个意想不到的解决方案:乱用填充物。填充恰好为 10 是否重要?因为我发现 (12, 12, 12, 12) 效果很好,而且文字很清晰。这有点奇怪,但我希望它对你有用。我能帮到你的就这么多了。
您可以向 Kivy 开发人员解决这个问题,但考虑到它是在 2014 年发现的,我很惊讶它没有得到解决。