Python 在kivy中从一个类访问另一个类的id
我想从类main访问类fahim2_pop的id。想要访问word从textinput(在主类中)到弹出窗口小部件,当有人按下搜索按钮时,弹出窗口小部件将出现。当有人搜索“hello”并按下搜索按钮时,弹出窗口小部件将出现,在该弹出窗口小部件中,标签的文本将与文本输入中的文本“hello”相同。但是标签和id仍然在不同的类中。怎么做 python代码Python 在kivy中从一个类访问另一个类的id,python,kivy,Python,Kivy,我想从类main访问类fahim2_pop的id。想要访问word从textinput(在主类中)到弹出窗口小部件,当有人按下搜索按钮时,弹出窗口小部件将出现。当有人搜索“hello”并按下搜索按钮时,弹出窗口小部件将出现,在该弹出窗口小部件中,标签的文本将与文本输入中的文本“hello”相同。但是标签和id仍然在不同的类中。怎么做 python代码 from kivy.app import App from kivy.uix.boxlayout import BoxLayout from ki
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()
千伏码
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
''')
Builder.load\u字符串(“”)
:
盒子布局:
方向:“垂直”
文本输入:
id:word
按钮:
文本:“搜索”
按:root.word()
:
id:流行音乐
标题:“结果”
盒子布局:
标签:
文本:app.root.ids.word.text
''')
由于main
是应用程序的根目录,因此您可以使用app.get\u running\u app().root.ids.word从应用程序中的任何位置访问TextInput
。因此,您可以在您的弹出窗口
中使用它,如下所示:
<fahim2_pop>:
id:pop
title:"result"
BoxLayout:
Label:
text:app.root.ids.word.text
有几种方法可以从另一个类访问id
,但具体操作方式取决于应用程序的结构(您尚未共享的代码)。这就是为什么我们要求你发布一个。我已经添加了我的完整代码。现在请给出一个解决方案如果main不是我的应用程序的根怎么办?你说因为main是根,所以它是text:app.root.ids.word.text。但如果main不是根呢?那应该是什么?这个问题没有答案。这完全取决于应用程序的结构。您可以保存对类实例的引用,在方法之间传递它们,或者使用实例引用和ids
字典相结合,甚至使用全局变量。
class fahim2_pop(Popup):
pass