2016-03-28 54 views
2

我有一个微调器用于选择项目作为下拉菜单。文本字段中的文本本身是正常的。但是,微调项目中的文本看起来模糊/模糊,请参阅附加图像。我怎么解决这个问题?为什么Kivy spinner中的文字模糊/模糊

enter image description here

源文件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) 


<[email protected]>: 
    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 
+1

Kivy在显示文本时存在浮点大小提示问题,我相信使它们成为整数应该可以解决问题。此外,如果您的源代码能够更好地调查问题,那么现在我无法重新创建它,这将会很不错。 – Leva7

+0

我已经在代码中隔离了这个问题。上面的代码已经相应地改变了。我发现填充“开始”的问题,但我不知道/理解这里真正的原因。当你填充填充语句时,微调框看起来很正常。在填充处于活动状态时,微调器中的文本变得模糊。 –

+0

我在基维的纺纱机和其他物品上遇到了同样的问题。我很想知道这个问题的答案。我会尝试两种解决方案 –

回答

1

这是Kivy一个已知的问题,显然是还没有尚未修复。请参阅这些链接以获取有关此案例的更多信息:GitHubGoogle Groups,Bountysource。他们指出,问题在于文字不是在整个像素上绘制的,而是绘制在整个像素上的。
你的情况出乎意料的解决方案:搅拌填充。对于填充十分重要吗?因为我发现(12, 12, 12, 12)完美运作,文字清晰。这有点奇怪,但我希望它适合你。只要我能帮助你解决这个问题。
您可以将此问题提交给Kivy开发人员,但考虑到它是在2014年发现的,我很惊讶它不是固定的。

+0

啊,这就解释了。非常感谢。我的解决方法是用空的Label小部件和画布替换填充。现阶段最安全的解决方案...... –