2016-03-28 83 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小部件和畫布替換填充。現階段最安全的解決方案...... –