这感觉就像一个愚蠢的问题,但过去几天我一直在爬行互联网,无济于事似乎很简单。无论如何,我想要做的是有一个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()
和结果的一个图: