Kivy TreeViewButton 未定义
Kivy TreeViewButton not defined
我正在开发一个应用程序,我必须添加一个带有我的组织结构图的屏幕,我正在考虑使用 TreeView
,因为它很适合,但我需要将节点作为按钮。
此外,该应用程序已经有 2 个屏幕,其中包含为我组织中的所有人定义的按钮。我如何使用他们的 ID 来填充 TreeView
?或者有更好的解决方案吗?
我的.py
import kivy
kivy.require('1.10.0')
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.uix.treeview import TreeViewNode
from kivy.uix.button import Button, ButtonBehavior
class UI(ScreenManager):
def __init__(self, **kwargs):
super(UI, self).__init__(**kwargs)
class Screen1(Screen):
def __init__(self, **kwargs):
super(Screen1, self).__init__(**kwargs)
class TreeViewButton(Button, TreeViewNode):
pass
Builder.load_file("test.kv")
class MyApp(App):
def build(self):
return UI()
if __name__ == '__main__':
MyApp().run()
我的 .kv 文件
#: kivy 1.10.0
#: import TreeViewLabel kivy.uix.treeview.TreeViewLabel
<UI>:
Screen1:
name: "screen1"
BoxLayout:
TreeView:
id: tv
Button:
size: (200, 50)
size_hint: (None, None)
text: "add_node"
on_press: tv.add_node(TreeViewButton(text = "Node..."))
当我按下按钮时,我得到
NameError: name 'TreeViewButton' is not defined error.
什么给了?
假设 .py 名为 main.py 那么您必须导入它:
test.kv
#: kivy 1.10.0
#: import TreeViewLabel kivy.uix.treeview.TreeViewLabel
#: import TreeViewButton main.TreeViewButton
<UI>:
Screen1:
name: "screen1"
BoxLayout:
TreeView:
id: tv
Button:
size: (200, 50)
size_hint: (None, None)
text: "add_node"
on_press: tv.add_node(TreeViewButton(text = "Node..."))
我正在开发一个应用程序,我必须添加一个带有我的组织结构图的屏幕,我正在考虑使用 TreeView
,因为它很适合,但我需要将节点作为按钮。
此外,该应用程序已经有 2 个屏幕,其中包含为我组织中的所有人定义的按钮。我如何使用他们的 ID 来填充 TreeView
?或者有更好的解决方案吗?
我的.py
import kivy
kivy.require('1.10.0')
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.uix.treeview import TreeViewNode
from kivy.uix.button import Button, ButtonBehavior
class UI(ScreenManager):
def __init__(self, **kwargs):
super(UI, self).__init__(**kwargs)
class Screen1(Screen):
def __init__(self, **kwargs):
super(Screen1, self).__init__(**kwargs)
class TreeViewButton(Button, TreeViewNode):
pass
Builder.load_file("test.kv")
class MyApp(App):
def build(self):
return UI()
if __name__ == '__main__':
MyApp().run()
我的 .kv 文件
#: kivy 1.10.0
#: import TreeViewLabel kivy.uix.treeview.TreeViewLabel
<UI>:
Screen1:
name: "screen1"
BoxLayout:
TreeView:
id: tv
Button:
size: (200, 50)
size_hint: (None, None)
text: "add_node"
on_press: tv.add_node(TreeViewButton(text = "Node..."))
当我按下按钮时,我得到
NameError: name 'TreeViewButton' is not defined error.
什么给了?
假设 .py 名为 main.py 那么您必须导入它:
test.kv
#: kivy 1.10.0
#: import TreeViewLabel kivy.uix.treeview.TreeViewLabel
#: import TreeViewButton main.TreeViewButton
<UI>:
Screen1:
name: "screen1"
BoxLayout:
TreeView:
id: tv
Button:
size: (200, 50)
size_hint: (None, None)
text: "add_node"
on_press: tv.add_node(TreeViewButton(text = "Node..."))