這感覺就像一個愚蠢的問題,但過去幾天我一直在爬行互聯網,無濟於事似乎很簡單。無論如何,我想要做的是有一個TreeView小部件,它具有RstDocument葉子。現在,當我這樣做時,我得到了一堆葉子,其窗口與這個人類似:Kivy Making a Custom TreeViewNode如何獲得Kivy中RstDocument的大小?
他們的解決方案對我不起作用,因爲RstDocument對象沒有與它關聯的紋理對象。在進一步研究之後,它似乎沒有任何屬性與像素相關的大小相關,並且它從中繼承的ScrollView佈局也沒有。試圖找到這樣的數字給我的東西,使尺寸是100px,這不是顯示的東西。
理想情況下,我試圖獲得它,以便RstDocument在擴展時完全顯示,以便最終用戶滾動瀏覽樹,摺疊它們不需要的東西。我不需要RstDocument滾動,因爲ScrollView已經在TreeView Widget上。
代碼儘可能接近法律允許:
from kivy.app import App
from kivy.uix.treeview import TreeView
from kivy.uix.treeview import TreeViewLabel
from kivy.uix.treeview import TreeViewNode
from kivy.uix.scrollview import ScrollView
from kivy.uix.rst import RstDocument
class TreeViewRst (RstDocument,TreeViewNode):
pass
class TreeApp (App):
def build (self):
root = StackLayout()
scroll = ScrollView(pos = (0, 0),size_hint=(1,0.78))
body = TreeView(hide_root=True,indent_level=0,size_hint=(1,None))
body.bind(minimum_height=body.setter('height'))
intro = body.add_node(TreeViewLabel(text="Title",font_size=18))
intro_diag = body.add_node(TreeViewLabel(text="Article"))
body.add_node(TreeViewRst(source='lopsem.rst',size=(100,100)),parent=intro_diag)
scroll.add_widget(body)
root.add_widget(scroll)
return root
Window.size = (360,640)
tree = TreeApp()
tree.run()
和結果的一個圖: