Python 3.x Kivy:不推荐功能的替代品

Python 3.x Kivy:不推荐功能的替代品,python-3.x,kivy,Python 3.x,Kivy,我正在尝试适应这一点,但我仍然是第一步,因为我不理解大多数被称为like,or的特性 当我在kivy网站上查找它们时,我发现它们被列为不推荐的。我在Kivy网站上找不到这些功能的替代品,我也不想用不推荐的功能构建一个应用程序 所以我的问题是:这四个特性的替代方案是什么?或者换句话说,我应该如何修改代码,使其不会调用不推荐的特性 看看 我用RecycleView写了一个你可能想要的例子 从kivy.app导入应用 从kivy.lang导入生成器 从kivy.uix.recycleview导入rec

我正在尝试适应这一点,但我仍然是第一步,因为我不理解大多数被称为like,or的特性

当我在kivy网站上查找它们时,我发现它们被列为不推荐的。我在Kivy网站上找不到这些功能的替代品,我也不想用不推荐的功能构建一个应用程序

所以我的问题是:这四个特性的替代方案是什么?或者换句话说,我应该如何修改代码,使其不会调用不推荐的特性

看看
我用RecycleView写了一个你可能想要的例子

从kivy.app导入应用
从kivy.lang导入生成器
从kivy.uix.recycleview导入recycleview
从kivy.uix.boxlayout导入boxlayout
从kivy.properties导入StringProperty
从kivy.uix.recycleview.views导入RecycleDataViewBehavior
项目=[
{“文本”:“白色”、“选定”:“正常”、“输入数据”:[“某些”、“随机”、“数据”]},
{“text”:“lightblue”,“selected”:“normal”,“input_data”:[1,6,3]},
{“文本”:“蓝色”,“选定”:“正常”,“输入数据”:[64,16,9]},
{“文本”:“灰色”,“选中”:“正常”,“输入数据”:[8766,13,6]},
{“文本”:“橙色”,“选定”:“正常”,“输入数据”:[9,4,6]},
{“文本”:“黄色”,“选中”:“正常”,“输入数据”:[852958123]},
{“文本”:“白色”、“选定”:“正常”、“输入数据”:[“某些”、“随机”、“数据”]},
{“text”:“lightblue”,“selected”:“normal”,“input_data”:[1,6,3]},
{“文本”:“蓝色”,“选定”:“正常”,“输入数据”:[64,16,9]},
{“文本”:“灰色”,“选中”:“正常”,“输入数据”:[8766,13,6]},
{“文本”:“橙色”,“选定”:“正常”,“输入数据”:[9,4,6]},
{“文本”:“黄色”,“选中”:“正常”,“输入数据”:[852958123]}
]
类MyViewClass(RecycleDataViewBehavior,BoxLayout):
text=StringProperty(“”)
索引=无
def设置_状态(自身、状态、应用):
app.root.ids.rv.data[self.index]['selected']=state
def刷新\视图\属性(自身、rv、索引、数据):
self.index=索引
返回超级(MyViewClass,self)。刷新\u视图\u属性(rv,索引,数据)
类别MyRecycleView(RecycleView):
数据=项目
def打印_数据(自身、数据):
打印([item['input_data']用于数据中的项目,如果项目['selected']=='down']))
KV='''
:
方向:“水平”
复选框:
on_状态:root.set_状态(self.state,app)
标签:
text:root.text
盒子布局:
方向:“垂直”
MyRecycleView:
id:rv
viewclass:“MyViewClass”
循环利用布局:
方向:“垂直”
默认大小:无,dp(56)
默认大小提示:1,无
尺寸提示:无
高度:自身最小高度
按钮:
尺寸:0.1
文本:“打印数据”
发布时:rv.打印数据(rv.数据)
'''
课堂测试(App):
def生成(自):
root=Builder.load\u串(KV)
返回根
Test().run()
看看
我用RecycleView写了一个你可能想要的例子

从kivy.app导入应用
从kivy.lang导入生成器
从kivy.uix.recycleview导入recycleview
从kivy.uix.boxlayout导入boxlayout
从kivy.properties导入StringProperty
从kivy.uix.recycleview.views导入RecycleDataViewBehavior
项目=[
{“文本”:“白色”、“选定”:“正常”、“输入数据”:[“某些”、“随机”、“数据”]},
{“text”:“lightblue”,“selected”:“normal”,“input_data”:[1,6,3]},
{“文本”:“蓝色”,“选定”:“正常”,“输入数据”:[64,16,9]},
{“文本”:“灰色”,“选中”:“正常”,“输入数据”:[8766,13,6]},
{“文本”:“橙色”,“选定”:“正常”,“输入数据”:[9,4,6]},
{“文本”:“黄色”,“选中”:“正常”,“输入数据”:[852958123]},
{“文本”:“白色”、“选定”:“正常”、“输入数据”:[“某些”、“随机”、“数据”]},
{“text”:“lightblue”,“selected”:“normal”,“input_data”:[1,6,3]},
{“文本”:“蓝色”,“选定”:“正常”,“输入数据”:[64,16,9]},
{“文本”:“灰色”,“选中”:“正常”,“输入数据”:[8766,13,6]},
{“文本”:“橙色”,“选定”:“正常”,“输入数据”:[9,4,6]},
{“文本”:“黄色”,“选中”:“正常”,“输入数据”:[852958123]}
]
类MyViewClass(RecycleDataViewBehavior,BoxLayout):
text=StringProperty(“”)
索引=无
def设置_状态(自身、状态、应用):
app.root.ids.rv.data[self.index]['selected']=state
def刷新\视图\属性(自身、rv、索引、数据):
self.index=索引
返回超级(MyViewClass,self)。刷新\u视图\u属性(rv,索引,数据)
类别MyRecycleView(RecycleView):
数据=项目
def打印_数据(自身、数据):
打印([item['input_data']用于数据中的项目,如果项目['selected']=='down']))
KV='''
:
方向:“水平”
复选框:
on_状态:root.set_状态(self.state,app)
标签:
text:root.text
盒子布局:
方向:“垂直”
MyRecycleView:
id:rv
viewclass:“MyViewClass”
循环利用布局:
方向:“垂直”
默认大小:无,dp(56)
默认大小提示:1,无
尺寸提示:无
高度:自身最小高度
按钮:
尺寸:0.1
文本:“打印数据”
发布时:rv.打印数据(rv.数据)
'''
课堂测试(App):
def生成(自):
root=Builder.load\u串(KV)
返回根
Test().run()

我无法发表评论,因此:

当你在使用大量的文本时,记住RST文档,这有更多的可能性。大多数Python在线文档都基于重构文本。如果您决定这样做,请使用rst的retext编辑器

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
from kivy.core.window import Window
from kivy.uix.stacklayout import StackLayout
import kivy


class TreeViewRst (RstDocument,TreeViewNode):
        pass

def update_size (event1,event2):
    event1.size = event1.viewport_size

txt ="""

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Mauris accumsan consequat justo, non aliquet sapien bibendum non. 
Nam quam risus, tempus quis lorem eu, sodales facilisis justo. 

Curabitur quis placerat ante. Phasellus tempor, libero vitae 
commodo accumsan, lorem metus eleifend velit, id dapibus ipsum ante sed massa. 
onec aliquam pellentesque pharetra. Praesent quis augue id elit facilisis euismod 
vel nec erat. Vestibulum nec dolor eget sem ullamcorper tempor id et dui. In a egestas massa.
Nulla vel augue non nisi varius varius.

"""

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"))
        long_txt = txt*10
        test = body.add_node(TreeViewRst(text=long_txt, size=(100,400)),parent=intro_diag)

        #test.bind(on_scroll_start=update_size)
        scroll.add_widget(body)
        root.add_widget(scroll)
        print(kivy.__version__)
        return root

Window.size = (360,640)
tree = TreeApp()
tree.run()

我无法发表评论,因此这样:

当你在使用大量的文本时,记住RST文档,这有更多的可能性。大多数Python在线文档都基于重构文本。以防万一你