如果我的问题没有放好,请原谅,我对这个问题还不熟悉。在python文件中,我有一个用于交换机的回调函数,我在.kv文件中创建了该函数
from kivy.app import App
from kivy.uix.pagelayout import PageLayout
class PageLayout(PageLayout):
statusMsg = 'Empty Status.'
def switch_callback(self, switchObject, switchValue):
#Switch values are True and False
if(switchValue):
statusMsg = '{0} enabled'.format(switchObject)
print(statusMsg)
else:
statusMsg = '{0} disabled'.format(switchObject)
print(statusMsg)
return statusMsg
def __init__(self):
super(PageLayout, self).__init__()
class myGUI(App):
def build(self):
return PageLayout()
if __name__ == "__main__":
myGUI().run()
Kivy文件(myGUI.kv):
<PageLayout>:
BoxLayout:
BoxLayout:
Label:
text: 'TestLabel'
Switch:
id: switchCal
active: False
on_active: root.switch_callback(*args)
现在,我可以打印被调用的对象参数,但不能打印id。我必须使用另一个变量,还是id没有用*args传递?我的外壳看起来像这样:
<kivy.uix.switch.Switch object at 0x1111B258> enabled
我尝试了switchObject.id,但它不起作用。提前谢谢
查找开关的
id
的一种方法是使用root
的ids
作为for loop
您还必须将
PageLayout
类重命名为其他类,因为它的名称与kivy的PageLayout
冲突{}部分的完整代码:
。。。以及{}部分
相关问题 更多 >
编程相关推荐