2016-05-10 100 views
-1

我有一個簡單的ListView小部件,我從我的python代碼傳遞一個列表。 .kv看起來像這樣:如何更改.kv中的ListView小部件的字體大小

ListView: 
     id: mylistview 
     size_hint_y: 0.5 
     font_size: self.height/5 

但是字體大小不起任何作用。我想我需要(以某種方式)將值傳遞給列表中的標籤,但使用相當簡單的方法來做到這一點,我不知道如何。另外,我發現的所有示例似乎都是Android特定的?!任何人都可以告訴我實現這個最簡單的方法嗎?

編輯: 好了,所以建議的答案,一個可怕的很多谷歌搜索的基礎上,我想出了下面的:

#:import ListAdapter kivy.adapters.listadapter.ListAdapter 

<CustomLabel>: 
    font_size: 30 

<MyPopup>: 
    GridLayout: 
     ...... 
      ListView: 
       size_hint: .8, .8 
       adapter: 
        ListAdapter(data=["Item #{0}".format(i) for i in range(100)], cls = CustomLabel) 

無論我已經看了表明這是正確的方法,但這只是給了我「NameError:name'CustomLabel'未定義」??

回答

1

Afaik ListView沒有font_size這樣的東西,所以這根本就沒有任何作用。

爲了得到你想要的,你需要設置font_size爲您Label小部件內做到這一點的最簡單的方法是創建一個自定義Label例如:

#kv 
<CustomLabel>: 
    font_size: <pass value here> 

#python 
class CustomLabel(Label): pass 

#python 
class CustomLabel(Label): 
    font_size = <value> 

編輯: Hups,忘記了適配器的東西。所以基本上,如果你不想轉換參數,你會最終得到自定義的Label,它會對你更簡單。

simple_list_adapter = SimpleListAdapter(
data=["Item #{0}".format(i) for i in range(100)], 
cls=CustomLabel) 

list_view = ListView(adapter=simple_list_adapter) 
+0

我似乎不明白我可以在哪裏使用這個simple_list_adapter代碼。我的所有佈局都是以.kv格式顯示,並且位於模式彈出窗口中。如果我嘗試添加此代碼,它只是告訴我沒有SimpleListAdapter,並且似乎沒有可以導入的代碼。有什麼我從根本上不''在這裏,我認爲... – user4893295

+0

對於任何人閱讀這個細節到底是如何實現它,以及我現在與text_size鬥爭:http://stackoverflow.com /問題/ 37276305 /設置最文本大小的標籤級式的Python代碼 – user4893295