我想访问从main类到fahim2_pop类的ID。想要访问从textinput(在主类中)到弹出窗口小部件的单词,该窗口小部件将在有人按下搜索按钮时显示。当有人搜索“ hello”并按搜索按钮时,将出现弹出窗口小部件,并且在该弹出窗口小部件中,标签的文本将为“ hello”,与来自文本输入的相同。但标签和ID仍在不同的类中。怎么做?
python代码
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.uix.popup import Popup
from kivy.properties import *
class fahim2_pop(Popup):
pass
class main(BoxLayout):
def word(self):
pop=fahim2_pop()
pop.open()
class CallApp(App):
def build(self):
return main()
CallApp().run()
kv代码
Builder.load_string('''
<main>:
BoxLayout:
orientation:"vertical"
TextInput:
id:word
Button:
text:"search"
on_press:root.word()
<fahim2_pop>:
id:pop
title:"result"
BoxLayout:
Label:
text:app.root.ids.word.text
''')
答案 0 :(得分:1)
由于main
是应用程序的根目录,因此您可以使用TextInput
从应用程序中的任何位置访问App.get_running_app().root.ids.word
。因此,您可以通过在Popup
中以以下方式使用它来在kv
中获得它:
<fahim2_pop>:
id:pop
title:"result"
BoxLayout:
Label:
text:app.root.ids.word.text
您fahim2_pop
可以很简单:
class fahim2_pop(Popup):
pass